ID: 42994
User updated by: arnout at argeweb dot nl
Reported By: arnout at argeweb dot nl
Status: Open
Bug Type: Unknown/Other Function
Operating System: BSD
PHP Version: 5.2.4
New Comment:
I tried both 5.2.3 and 5.2.4.
5.2.3:
apache_mod on apache 2.0, FreeBSD 6.2-RELEASE-p5, can't turn zend
optimizer off there.
5.2.4:
Tried with Zend optimizer on and off.
php 5.2.4 apache_mod on apache 2.2
OS: FreeBSD 6.2-RELEASE-p3
'./configure' '--with-layout=GNU'
'--with-config-file-scan-dir=/usr/local/etc/php' '--disable-all'
'--enable-libxml' '--with-libxml-dir=/usr/local' '--enable-reflection'
'--program-prefix=' '--disable-cgi' '--with-apxs2=/usr/local/sbin/apxs'
'--with-regex=php' '--with-zend-vm=CALL' '--disable-ipv6'
'--prefix=/usr/local' '--mandir=/usr/local/man'
'--infodir=/usr/local/info/'
I hope that helps...
Previous Comments:
------------------------------------------------------------------------
[2007-10-16 20:12:15] crrodriguez at suse dot de
Your exact code works just fine here, it does not call __autoload at
all... what is your exact PHP version ?
------------------------------------------------------------------------
[2007-10-16 15:22:20] arnout at argeweb dot nl
Description:
------------
When using is_callable on non-existing static class functions
__autoload will be called twice with some encoded (and thus
non-existent) classname.
Reproduce code:
---------------
autoload.php
<?php
class test{
function notest(){
}
}
function __autoload( $classname ){
echo "let's require $classname!<br/>\n";
}
if( is_callable( array( 'test', 'test' ) ) ){
echo "test::test exists.";
}else{
echo "test::test doesn't exist.";
}
?>
Expected result:
----------------
test::test doesn't exist.
(no __autoload execution at all)
Actual result:
--------------
let's require 9akf!
let's require 9akf!
test::test doesn't exist.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=42994&edit=1