ID:               39003
 Comment by:       judas dot iscariote at gmail dot com
 Reported By:      christoph at ziegenberg dot de
 Status:           Open
 Bug Type:         Performance problem
 Operating System: WinXP SP2
 PHP Version:      5.1.6
 New Comment:

if this is the expected behaviuor ( at least, not the behaviuor I
expect ;) ) it is not mentioned in the manual, so either the manual or
the engine needs to be corrected ;-)


Previous Comments:
------------------------------------------------------------------------

[2006-09-30 10:05:56] christoph at ziegenberg dot de

Description:
------------
if i check if a variable is an instance of specific class with
"instanceof" and the class i check for has not been loaded,
__autoloader() is not called (as expected).

if i do the "same" check by type hinting, the __autoloader() function
is called, which normally leads to including the required class file
and so unnecessarily consumes memory and time.

Reproduce code:
---------------
<?php
error_reporting(E_ALL);
class ClassName
{
    public $var = 'bla';
}
function test (OtherClassName $object)
{

}
function __autoload($class)
{
    print "try to load class $class";
}
$obj = new ClassName;
if (!($obj instanceof OtherClassName))
{
    echo "no instance of OtherClassName<br />";
}
test($obj);
?>

Expected result:
----------------
no instance of OtherClassName

Actual result:
--------------
no instance of OtherClassName
try to load class OtherClassName
Fatal error: Class 'OtherClassName' not found in [...] on line 7


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


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

Reply via email to