ID: 42994 Updated by: [EMAIL PROTECTED] Reported By: arnout at argeweb dot nl -Status: Open +Status: Feedback Bug Type: Unknown/Other Function Operating System: BSD PHP Version: 5.2.4 New Comment:
Please try using this CVS snapshot: http://snaps.php.net/php5.2-latest.tar.gz For Windows (zip): http://snaps.php.net/win32/php5.2-win32-latest.zip For Windows (installer): http://snaps.php.net/win32/php5.2-win32-installer-latest.msi For me it works fine. Please make sure you're using proper source - no FreeBSD patches or something. Previous Comments: ------------------------------------------------------------------------ [2007-10-17 07:22:20] arnout at argeweb dot nl 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... ------------------------------------------------------------------------ [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