0
我在spl_autoload_register()
里面注册了一个函数。在这里我可以得到类名,但是如何确定它是哪个名称空间?php autoloading:这个类是从哪个命名空间来的?
我在spl_autoload_register()
里面注册了一个函数。在这里我可以得到类名,但是如何确定它是哪个名称空间?php autoloading:这个类是从哪个命名空间来的?
如果你想在当前命名空间:
namespace MyProject;
echo '"', __NAMESPACE__, '"'; // outputs "MyProject"
否则你在配置文件中或者通过我想(通过应用结构的注释说明)存储...
试试这个例子。你可以定义一个类来处理你的电话
<?php
namespace Example;
#Define a classLoader object
class Loader{
/**
* Construct and set the autoloader class handler
*/
public function __construct() {
spl_autoload_register(array($this, 'loadClass'));
}
/**
* This method is called when an object is loaded
*
* @param string $args
*/
public function loadClass($args){
var_dump($args);
//REMOVE: this is only for killing the process
die;
}
}
//Create your autoloader object
new Loader();
//Calling some class
new \Some\Name\Space\Example();
你应该得到这样的回复。
string(23) "Some\Name\Space\Example"
它不会自动发生或由PHP函数必须以这样的方式使'spl_autoload_register'可识别的结构,你的应用程序 –