Edit report at https://bugs.php.net/bug.php?id=55475&edit=1
ID: 55475 Updated by: col...@php.net Reported by: mads at gartneriet dot dk Summary: is_a() triggers autoloader Status: Assigned Type: Bug Package: Scripting Engine problem PHP Version: 5.3.7 Assigned To: dmitry Block user comment: N Private report: N New Comment: 1) The underlying implementation is shared between is_a and is_subclass_of. 2) Previously, strings as first argument was not permitted by is_a but was for is_subclass_of, 3) is_subclass_of always triggered autoload in such cases. 4) Following a fix from Dmitry, the underlying implementation now allows a string as first argument for is_a as well. Conclusion: it is now consistent, but if you wrongly used is_a with a string before, it now triggers autoload because it actually accepts it. Previous Comments: ------------------------------------------------------------------------ [2011-08-22 08:57:32] konstantin dot leboev at gmail dot com I guess it's not a bug. The first argument can be a class name, what will be loaded only on calling this function. ------------------------------------------------------------------------ [2011-08-22 08:19:04] paj...@php.net Related to change for the #53727 fix. http://svn.php.net/viewvc/php/php- src/branches/PHP_5_3/Zend/zend_builtin_functions.c?r1=307522&r2=312904 Assigned to Dmitry ------------------------------------------------------------------------ [2011-08-22 08:16:02] mads at gartneriet dot dk Description: ------------ When calling is_a() with a first argument that is not an object, then __autoload() is triggered: Test script: --------------- <?php function __autoload($class) { echo "Would load: " . $class . PHP_EOL; } $var = "test"; var_dump(is_a($var, 'B')); $obj = new Stdclass; var_dump(is_a($obj, 'C')); ?> Expected result: ---------------- bool(false) bool(false) Actual result: -------------- Would load: test bool(false) bool(false) ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=55475&edit=1