Re: is_a() triggers __autoload() in 5.3.7
| From: | Mads Lie Jensen | Date: | Mon, 22 Aug 2011 06:22:40 +0000 |
| Subject: | Re: is_a() triggers __autoload() in 5.3.7 | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-54768@lists.php.net to get a copy of this message | ||
On Mon, 22 Aug 2011 08:10:28 +0200, kalle@php.net (Kalle Sommer Nielsen)
wrote:
>> After upgrading to php 5.3.7, whenever I use is_a($object, 'ClassName');
>> the autoloader of classes is now called.
>>
>> This did not happen in earlier versions of php 5.3 that I used before.
>> But I cannot find any mention of it anywhere, no open bugs for it, and
>> nothing in the changelogs.
>>
>> Is it a bug or is it intentional that it has started behaving this way?
>
>I'm unable to reproduce your case in 5.3.4RC1, 5.3.7 and 5.3-svn:
>http://pastie.org/2410070
Ah, I now see that it only happens when trying to check something which
is not actually an object:
<?php
function __autoload($class) {
echo "Would load: " . $class . PHP_EOL;
}
$var = "test";
var_dump(is_a($var, 'B'));
$obj = new Stdclass;
var_dump(is_a($obj, 'C'));
?>
But still, it did not happen in earlier phpversions.
--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
Gartneriet - http://www.gartneriet.dk/