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

From: Date: Tue, 23 Aug 2011 08:25:34 +0000
Subject: Bug #55475 [Com]: is_a() triggers autoloader
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-162838@lists.php.net to get a copy of this message
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:

@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


Previous Comments:
------------------------------------------------------------------------
[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] colder@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.

------------------------------------------------------------------------
[2011-08-22 18:36:59] stas@php.net

This is not a bug. If first argument is a string, it is interpreted as a class 
name and autoloader is called for it. Actually, IIRC, one the reasons why is_a was 
un-deprecated is that it can work with strings.

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


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


Thread (51 messages)

« previous php.bugs (#162838) next »