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

 ID:                 55475
 Updated by:         col...@php.net
 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:

1) The underlying implementation is shared between is_a and is_subclass_of.
2) Previously, strings as first argument was not permitted by is_a but
was for is_subclass_of,
3) is_subclass_of always triggered autoload in such cases.
4) Following a fix from Dmitry, the underlying implementation now
allows a string as first argument for is_a as well.

Conclusion: it is now consistent, but if you wrongly used is_a with a
string before, it now triggers autoload because it actually accepts
it.


Previous Comments:
------------------------------------------------------------------------
[2011-08-22 08:57:32] konstantin dot leboev at gmail dot com

I guess it's not a bug. The first argument can be a class name, what will be 
loaded only on calling this function.

------------------------------------------------------------------------
[2011-08-22 08:19:04] paj...@php.net

Related to change for the #53727 fix.

http://svn.php.net/viewvc/php/php-
src/branches/PHP_5_3/Zend/zend_builtin_functions.c?r1=307522&r2=312904

Assigned to Dmitry

------------------------------------------------------------------------
[2011-08-22 08:16:02] mads at gartneriet dot dk

Description:
------------
When calling is_a() with a first argument that is not an object, then 
__autoload() is triggered:



Test script:
---------------
<?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'));

?>

Expected result:
----------------
bool(false)
bool(false)

Actual result:
--------------
Would load: test
bool(false)
bool(false)



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



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

Reply via email to