【发布时间】:2018-10-23 08:42:07
【问题描述】:
我想通过我在类 Foo 中设置的方法获取类 Foo 的名称。 我可以通过下面的 debug_backtrace() 获得类 Foo 的名称。还有其他方法吗?
<?php
class Foo{
public function index(){
return (new Bar())->test();
}
}
class Bar{
public function test(){
$info = debug_backtrace();
$info = array_column($info, 'class');
$name = current(array_diff($info, array(__CLASS__)));
return "'$name' class name";
}
}
$foo = (new Foo())->index();
echo $foo; // 'Foo' class name
-- 更新-- 我的英文不好,我没说。 我想做如下的事情。请相应地写下你的答案。
index.php
<h1>Hello World</h1>
/view|
|foo|index.php
| |menu.php
| |detail.php
|
|user|login.php
|register.php
我将获取上述目录路径的文件。目录路径和类名将相同。
<?php
class Foo{
public function index(){
return (new Template())->view('index.php');
}
}
class User{
public function index(){
return (new Template())->view('login.php');
}
}
class Template{
public function view($file_name){
$info = debug_backtrace();
$info = array_column($info, 'class');
$name = current(array_diff($info, array(__CLASS__)));
include("view/$name/$file_name");
}
}
$foo = (new Foo())->index();
//Hello World
【问题讨论】: