ID:               40775
 Updated by:       [EMAIL PROTECTED]
 Reported By:      seanius at debian dot org
-Status:           Assigned
+Status:           Open
-Bug Type:         Scripting Engine problem
+Bug Type:         Documentation problem
 Operating System: Debian GNU/Linux
 PHP Version:      5.2.1
 Assigned To:      tony2001
 New Comment:

Yes, __autoload() can not be invoked when compiling because compiler is
not reentrant (and interactive mode means we're always compiling).
Reclassified as docu problem.


Previous Comments:
------------------------------------------------------------------------

[2007-03-11 12:20:45] seanius at debian dot org

Description:
------------
the __autoload hook doesn't seem to be run for the cmdline/cgi versions
 of php when invoked in "interactive" (-a) mode.

originally reported at http://bugs.debian.org/406264

Reproduce code:
---------------
<?php
function __autoload($class)
{
echo $class;// should output class name
echo 'lol';// should at least print it if it comes into function body
require($class . '.php');// should break script because of missing
file
}
// but it will just cause fatal error about missing class :|
$foo = new Bar(); ?>

Expected result:
----------------
client-158[~]13:14:49$ php < foo.php
Barlol
Warning: require(Bar.php): failed to open stream: No such file or
directory in - on line 6

Fatal error: require(): Failed opening required 'Bar.php'
(include_path='.:/usr/share/php:/usr/share/pear') in - on line 6



Actual result:
--------------
client-158[~]13:14:54$ php -a < foo.php
Interactive mode enabled


Fatal error: Class 'Bar' not found in - on line 9


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=40775&edit=1

Reply via email to