Bug #55475 [Com]: is_a() triggers autoloader

2011-08-23 Thread jha dot rajeev at gmail dot com
Edit report at https://bugs.php.net/bug.php?id=55475&edit=1

 ID: 55475
 Comment by:     jha dot rajeev at gmail 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:

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!


Previous Comments:

[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] col...@php.net

What code? Do you have some example?


[2011-08-22 19:17:28] mads at gartneriet dot dk

Maybe not a bug, but it is behaving different ind 5.3.7 than in the previous 
versions, which makes some of the code from PEAR that i use, give errors.




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


Bug #55475 [Com]: is_a() triggers autoloader

2011-08-23 Thread jha dot rajeev at gmail dot com
Edit report at https://bugs.php.net/bug.php?id=55475&edit=1

 ID: 55475
 Comment by:     jha dot rajeev at gmail 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:

I have a question re. the correct behavior of custom __autoload() functions 
when 
called from is_a() in 5.3.7. How do we handle/report missing classes? is is_a() 
prepared to handle any sort of exceptions or does it assume that __autoload 
will 
return TRUE/FALSE only?

what if I just did something like is_a("",ABCD)?


Previous Comments:

[2011-08-24 01:59:04] alan at akbkhome dot com

For reference: 
The workaround is to do this 

if (is_a($a, 'B')) {

becomes

if (is_object($a) && is_a($a, 'B')) {

----------------
[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.




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