Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种简单的方法可以获取在PHP中实例化类的文件?_Php_Class - Fatal编程技术网

有没有一种简单的方法可以获取在PHP中实例化类的文件?

有没有一种简单的方法可以获取在PHP中实例化类的文件?,php,class,Php,Class,我想复制一下: $myObject = new object( __FILE__ ); class object { protected $path_to_caller; public function __construct( $file ){ $this->path_to_caller = dirname( $file ); } } 无需传递参数,因为每个调用的参数都是相同的。有没有一种方法可以访问成员函数中的调用文件/目录而不使用deb

我想复制一下:

$myObject = new object( __FILE__ );

class object {

    protected $path_to_caller;

    public function __construct( $file ){
        $this->path_to_caller = dirname( $file );
    }
}
无需传递参数,因为每个调用的参数都是相同的。有没有一种方法可以访问成员函数中的调用文件/目录而不使用
debug\u backtrace()

基本上,我想要:

$myObject = new object();

class object {

    protected $path_to_caller;

    public function __construct(){
        $this->path_to_caller = special_function(); // dirname( __FILE__ ) of caller
    }
}

我可以知道为什么不能使用debug\u backtrace()?我想你的意思是
$this->path\u to\u caller=dirname($file)不想使用backtrace(),因为这是一个效率低下的解析解决方案,考虑到我仍然可以简单地将目录传递到构造函数中。理想情况下,有一个内置的功能或东西,我只是无法找到。air4x-是的,我做了,谢谢。:)我们可以知道你为什么认为你需要这个吗?因为很可能你做错了什么。我正在构建一个插件类,该类将在一个插件初始化文件中实例化。插件对象被推送到一个集合中,该集合稍后将根据指定的路由进行迭代以加载适当的插件。通过将init文件的位置传递到addon类中,我就可以在稍后的加载时加载与它同级的任何附加addon文件,而无需静态地定义它们以供包含。不过,为了提高效率,我可能会采用更简单的设计。