ID: 51126 Updated by: johan...@php.net Reported By: richard at rjharrison dot org -Status: Open +Status: Bogus -Bug Type: SPL related +Bug Type: Unknown/Other Function Operating System: linux PHP Version: 5.3.1 New Comment:
Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php When used as a string we need the fully qualified name as we don't know where the parameter is coming from. Previous Comments: ------------------------------------------------------------------------ [2010-02-23 18:41:57] richard at rjharrison dot org Description: ------------ class_exists() is not calling my spl_autoload_register'ed function with a fully qualified (namespaced) class name. Because the input to my autoload function is not fully qualified, it cannot load the class and class_exists return false; however, if I try to instantiate the class that "does not exist" then the correct, fully qualified class now passed to the autoloader: it correctly loads the class and my code works. Reproduce code: --------------- // register my autoloader use Foo\Things; // This fails: my autoload function is called with $class = 'Things\Car' if(class_exists('Things\Car')){ echo "class exists!"; }else{ echo "Weird?"; } // This works: my autoload function is called with $class = 'Foo\Things\Car' $x = new Things\Car(); Expected result: ---------------- "class exists!" Actual result: -------------- "Weird?" ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=51126&edit=1