From: christoph at ziegenberg dot de Operating system: WinXP SP2 PHP version: 5.1.6 PHP Bug Type: Performance problem Bug description: __autoload unnecessarily called for type hinting
Description: ------------ if i check if a variable is an instance of specific class with "instanceof" and the class i check for has not been loaded, __autoloader() is not called (as expected). if i do the "same" check by type hinting, the __autoloader() function is called, which normally leads to including the required class file and so unnecessarily consumes memory and time. Reproduce code: --------------- <?php error_reporting(E_ALL); class ClassName { public $var = 'bla'; } function test (OtherClassName $object) { } function __autoload($class) { print "try to load class $class"; } $obj = new ClassName; if (!($obj instanceof OtherClassName)) { echo "no instance of OtherClassName<br />"; } test($obj); ?> Expected result: ---------------- no instance of OtherClassName Actual result: -------------- no instance of OtherClassName try to load class OtherClassName Fatal error: Class 'OtherClassName' not found in [...] on line 7 -- Edit bug report at http://bugs.php.net/?id=39003&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=39003&r=trysnapshot44 Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=39003&r=trysnapshot52 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=39003&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=39003&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=39003&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=39003&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=39003&r=needscript Try newer version: http://bugs.php.net/fix.php?id=39003&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=39003&r=support Expected behavior: http://bugs.php.net/fix.php?id=39003&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=39003&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=39003&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=39003&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=39003&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=39003&r=dst IIS Stability: http://bugs.php.net/fix.php?id=39003&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=39003&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=39003&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=39003&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=39003&r=mysqlcfg