ID: 31562
User updated by: aalbre99 at student dot hia dot no
Reported By: aalbre99 at student dot hia dot no
Status: Open
Bug Type: Zend Engine 2 problem
Operating System: Windows XP
PHP Version: 5.0.3
New Comment:
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...
Previous Comments:
------------------------------------------------------------------------
[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] [EMAIL PROTECTED]
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
------------------------------------------------------------------------
[2005-01-15 02:05:26] aalbre99 at student dot hia dot no
Description:
------------
Autoload is not invoked for missing class when using static variables
(no other reference to the class in same file).
Ex. (test.php):
function __autoload($className) {
require_once("class_files/" . $className . ".php");
}
$myVar = MyClass::$classVar;
//This will not invoke the __autoload() procedure...
//Adding (in the top):
//require_once("class_files/ErrorFetcher.php");
//"fixes" the problem
Reproduce code:
---------------
//(test.php)
function __autoload($className) {
require_once("class_files/" . $className . ".php");
}
$myVar = MyClass::$classVar;
//MyClass is described in class_files/MyClass.php...
Expected result:
----------------
No error...
Actual result:
--------------
Fatal error: Class 'MyClass' not found in test.php on line xx
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=31562&edit=1