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