Edit report at https://bugs.php.net/bug.php?id=31562&edit=1
ID: 31562 Comment by: youcontrol at foxmail dot com Reported by: aalbre99 at student dot hia dot no Summary: __autoload() problem with static variables Status: Closed Type: Bug Package: Scripting Engine problem Operating System: * PHP Version: 5.* Assigned To: helly Block user comment: N Private report: N New Comment: I got a same error,too! php 5.2 Previous Comments: ------------------------------------------------------------------------ [2011-04-21 13:21:08] liujingfeng at snda dot com I get the same bug. My php ver is 5.2 . ------------------------------------------------------------------------ [2005-03-10 03:34:35] he...@php.net This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. ------------------------------------------------------------------------ [2005-03-06 22:59:09] aalbre99 at student dot hia dot no Sorry. Replaced all my PHP files with the files in http://snaps.php.net/win32/php5-win32-latest.zip. Still same error... (I'am using the built-in IIS in Windows XP SP2) ------------------------- Output from 'test.php': ------------------------- Fatal error: Class 'TestClass' not found in C:\_ECLIPSE_\test\other\Other.php on line 5 ------------------------------------------------------------------------ [2005-02-28 21:02:08] sni...@php.net Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip ------------------------------------------------------------------------ [2005-01-15 13:51:02] aalbre99 at student dot hia dot no I have created an application which reproduces the error. And now I see that the error is caused by something other than I thought in the beginning... Put the following files in the following folder structure, and load 'test.php'... /test.php /class_files/ErrorHandler.php /class_files/TestClass.php /other/Other.php #test.php# <?php function __autoload($className) { require_once("class_files/" . $className . ".php"); } //Uncoment this line to bypas the bug... //require_once("class_files/TestClass.php"); class Test { public function Test() { $errorHandler = new ErrorHandler(); require_once("Other/Other.php"); $other = new Other(); } } $test = new Test(); ?> #TestClass.php# <?php class TestClass { public static $staticVar; public function TestClass() { //Set ErrorHandler set_error_handler(array($this, 'handlePhpError')); } } ?> #ErrorHandler.php# <?php class ErrorHandler { public function ErrorHandler() { error_reporting(E_ALL); set_error_handler(array($this, 'handlePhpError')); } public function handlePhpError($type, $msg, $file, $line) { $myVar = TestClass::$staticVar; echo "Error!"; } } ?> #Other.php# <?php class Other { //Produces warning! var $temp = 'temp'; public function Other() {} } ?> ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=31562 -- Edit this bug report at https://bugs.php.net/bug.php?id=31562&edit=1