Edit report at https://bugs.php.net/bug.php?id=55475&edit=1
ID: 55475
Comment by: alan at akbkhome dot com
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:
For reference:
The workaround is to do this
if (is_a($a, 'B')) {
becomes
if (is_object($a) && is_a($a, 'B')) {
Previous Comments:
------------------------------------------------------------------------
[2011-08-23 14:24:59] jha dot rajeev at gmail dot com
This also affects HTML_Template_Flexy pear package that uses is_a to check
returned object against PEAR_Error class. No matter what behavior is right it
looks broken to me because I am patching this pear packages files right now!
------------------------------------------------------------------------
[2011-08-23 08:25:33] alan at akbkhome dot com
@stas - the point of un-depreciating and working with a string was the second
argument, not the first one.
eg.
is_a($something, 'might_be_not_loaded_class')
rather than
$something instanceof might_be_not_loaded_class
------------------------------------------------------------------------
[2011-08-23 06:26:21] alan at akbkhome dot com
>From the manual.
"Returns TRUE if the object is of this class or has this class as one of its
parents, FALSE otherwise."
note the "FALSE otherwise" ...
Defiantly a bug..
------------------------------------------------------------------------
[2011-08-23 05:17:52] mads at gartneriet dot dk
DB_DataObject uses is_a() to check if a variable is both an object and an
instance of a particular object.
PEAR::isError() does too.
This just gives warnings in my code, and I could of course easily fix these two
places in my local pear-code. But then it will bite me the next time I upgrade
those packages from PEAR.
------------------------------------------------------------------------
[2011-08-22 21:46:19] [email protected]
What code? Do you have some example?
------------------------------------------------------------------------
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