#31562 [Opn->Fbk]: __autoload() problem with static variables

From: Date: Mon, 28 Feb 2005 20:02:09 +0000
Subject: #31562 [Opn->Fbk]: __autoload() problem with static variables
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-77077@lists.php.net to get a copy of this message
ID: 31562 Updated by: sniper@php.net Reported By: aalbre99 at student dot hia dot no -Status: Open +Status: Feedback Bug Type: Zend Engine 2 problem Operating System: Windows XP PHP Version: 5.0.3 New Comment: 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 Previous Comments: ------------------------------------------------------------------------ [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() {} } ?> ------------------------------------------------------------------------ [2005-01-15 13:06:37] aalbre99 at student dot hia dot no YES. I managed to reproduce the error in my PHP application! (One line was changed...) I will now try to make a test application I can post here which generates the same error... Stay tuned... ------------------------------------------------------------------------ [2005-01-15 12:56:52] aalbre99 at student dot hia dot no This is the strangest thing... Today my PHP application works fine, but I am sure that it didn't work yesterday. No changes in the code, only a reboot of my computer since yesterday.... ------------------------------------------------------------------------ [2005-01-15 12:40:37] aalbre99 at student dot hia dot no Thought it was a general bug, but it's not... If you replace "$myVar = MyClass::$classVar;" with "$myVar = ErrorFetcher::$classVar;" you will se the error... Is this a bug, or is it me how have chosen a bad name for my class....? ------------------------------------------------------------------------ [2005-01-15 07:43:16] jed@php.net Anything unusual about your configuration? i.e., php.ini changes or Zend extensions? I cannot reproduce this. F:\>php_5_0_3 -f F:\test.php Warning: __autoload(class_files/MyClass.php): failed to open stream: No such file or directory in F:\test.php on line 3 Fatal error: __autoload(): Failed opening required 'class_files/MyClass.php' (include_path='.;D:\PHP\PHP_5_0_3\include') in F:\test.php on line 3 F:\>php5_0_3 -v PHP 5.0.3 (cli) (built: Dec 15 2004 08:07:57) Copyright (c) 1997-2004 The PHP Group Zend Engine v2.0.3, Copyright (c) 1998-2004 Zend Technologies ------------------------------------------------------------------------ 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 http://bugs.php.net/31562 -- Edit this bug report at http://bugs.php.net/?id=31562&edit=1

« previous php.bugs (#77077) next »