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: But what BC break are you talking about exactly? It went from not-working (returning always false for strings as first argument) to working with autoload. Previous Comments: ------------------------------------------------------------------------ [2011-08-22 13:41:16] ka...@php.net I'm not arguing that the new behaviour is wrong, I believe it is the desired too but I don't agree to break BC in the middle of a stable release series nor as much as I would like to myself to achieve the right behaviour. ------------------------------------------------------------------------ [2011-08-22 13:31:21] col...@php.net It seems correct to me as well to trigger autoload in this case. It does and always did so for is_subclass_of(), I don't see any reason for a condition of "subclasses_only" to yes or no trigger the autoload. ------------------------------------------------------------------------ [2011-08-22 11:00:28] dmi...@php.net Before the patch, is_a() didn't accept string as the first argument at all, so it always returned "false" and never triggered __autoload(). The proposed patch didn't revert to original behavior. It just disables autoloading and may lead to wrong result. class a {} class b extends a {} var_dump(is_a("b", "a")); // it was false before 5.3.7, now it's true I would say that the old behaviour was wrong, especially because "instanceof" and is_subclass_of() already implemented support for string arguments. ------------------------------------------------------------------------ [2011-08-22 10:30:19] ka...@php.net The following patch has been added/updated: Patch Name: bug55475 Revision: 1314009019 URL: https://bugs.php.net/patch-display.php?bug=55475&patch=bug55475&revision=1314009019 ------------------------------------------------------------------------ [2011-08-22 10:29:51] ka...@php.net Zeev, although the functionality might appear as it should be then we should not make sudden changes like that in the middle of a stable branch, we should patch up 5.3 and keep the behaviour in 5.4 if its indeed intended atleast to comply with previous versions. The fix for 5.3 is simple, attached ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=55475 -- Edit this bug report at https://bugs.php.net/bug.php?id=55475&edit=1