Edit report at https://bugs.php.net/bug.php?id=55475&edit=1

 ID:                 55475
 Comment by:         good821 at 126 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:

http://www.jetsjerseyonline.com/kyle-wilson-jersey-c-10_32.html Kyle Wilson 
Jersey
http://www.jetsjerseyonline.com/ladainian-tomlinson-jersey-c-10_19.html 
LaDainian Tomlinson Jersey
http://www.jetsjerseyonline.com/mark-gastineau-jersey-c-10_37.html      Mark 
Gastineau Throwback jersey


Previous Comments:
------------------------------------------------------------------------
[2011-08-29 07:15:47] tyr...@php.net

"note the "FALSE otherwise" ..."

note "if the object" ...

Tyrael

------------------------------------------------------------------------
[2011-08-26 10:24:39] kkaminski at itens dot pl

+1 for reverting change in 5.3 branch and implementing it in 5.4 (or giving up 
as it really CHANGES BEHAVIOR)
Currently __autoload throws Exceptions to break code execution on some 
frameworks. This is clean solution as if developer makes a typo, code still can 
handle missing class and for instance - display a dedicated error report.

Unfortunately, with your latest 'fix' all PEAR packages are now broken on 
frameworks with __autoload + exceptions - due to isError implementation.

Are you really sure is it MY duty to rewrite / repatch all code (external) code 
to work around your 'fix' ?
How I am supposed to handle missing classes in this case? With exceptions I can 
catch everything and handle myself. Whats the other way?

------------------------------------------------------------------------
[2011-08-24 05:16:11] jha dot rajeev at gmail dot com

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)?

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

------------------------------------------------------------------------


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

Reply via email to