ID: 26762
Updated by: [EMAIL PROTECTED]
Reported By: mail at alexanderklein dot de
Status: Bogus
Bug Type: Class/Object related
-Operating System: Linux & Win32
+Operating System: *
PHP Version: 5.0.0b3 (beta3)
New Comment:
Behavior is correct as you can see below:
[EMAIL PROTECTED] /usr/src/php5 $ php -r 'class FOO{}$o=new
FOO;var_dump(serialize($o));'
string(14) "O:3:"FOO":0:{}"
[EMAIL PROTECTED] /usr/src/php5 $ php -r
'$o=unserialize("O:3:\"FOO\":0:{}");var_dump($o);'
object(__PHP_Incomplete_Class)#1 (1) {
["__PHP_Incomplete_Class_Name"]=>
string(3) "foo"
}
[EMAIL PROTECTED] /usr/src/php5 $ php -r 'class
FOO{}$o=unserialize("O:3:\"FOO\":0:{}");var_dump($o);'
object(FOO)#1 (0) {
}
Previous Comments:
------------------------------------------------------------------------
[2004-01-01 20:21:26] mail at alexanderklein dot de
Ok, you say
> In php class names are not case sensitive and are
> stored in lowercase form internally.
but why does the __autoload() function not convert to
lowercase if i make an instance like "new myTestWithUpper"?
this is a _little_ bit confusing :-(
------------------------------------------------------------------------
[2004-01-01 19:42:50] [EMAIL PROTECTED]
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php
In php class names are not case sensitive and are stored in
lowercase form internally.
------------------------------------------------------------------------
[2004-01-01 18:24:39] mail at alexanderklein dot de
A short sample script
STEP One:
function __autoload($sClass) {
echo $sClass."<br>";
}
ini_set(
'unserialize_callback_func',
'__autoload'
);
class myTestWithUpper {
public $test;
protected function __sleep() {
return array('test');
}
}
file_put_contents(
"./test.dat",
serialize(
new myTestWithUpper()
)
);
STEP Two:
unserialize(
file_get_contents ("./test.dat")
);
------------------------------------------------------------------------
[2004-01-01 18:04:25] mail at alexanderklein dot de
Description:
------------
I use the __autoload($sClass) feature, and the $sClass
names are always transmitted as is. With upper and
lower characters.
But when i cache a class with serialize and try
to unserialize, the $sClass names are only lowercase.
System 1
System Windows NT 5.1
Build Date Jan 1 2004 16:06:44
Server API CGI/FastCGI
PHP API 20031224
PHP Extension 20020429
Zend Extension 90021012
System 2
System Linux * 2.4.18 #1 SMP i686
Build Date Dec 23 2003 04:48:50
Server API Apache
Virtual Directory Support disabled
PHP API 20031103
PHP Extension 20020429
Zend Extension 90021012
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=26762&edit=1