Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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_Oop - Fatal编程技术网

如何在PHP中获取类的子名称

如何在PHP中获取类的子名称,php,oop,Php,Oop,我想在父类构造函数中获取子类名称。类是命名空间的,因此如果我使用get_class();函数,它将检索整个名称空间,我只需要子类的类名 父类是一个抽象类。请尝试使用get\u called\u class()函数,该函数来自带有名称空间的完全限定类名实际上是“正确的”类。 如果您只需要最后一位,那么只需使用子字符串即可 $class = substr(get_class($this), strrpos(get_class($this),'\\')+1); 或者,您可以使用反射 $refl =

我想在父类构造函数中获取子类名称。类是命名空间的,因此如果我使用get_class();函数,它将检索整个名称空间,我只需要子类的类名


父类是一个抽象类。

请尝试使用
get\u called\u class()
函数,该函数来自带有名称空间的完全限定类名实际上是“正确的”类。 如果您只需要最后一位,那么只需使用子字符串即可

$class = substr(get_class($this), strrpos(get_class($this),'\\')+1);
或者,您可以使用反射

$refl = new \ReflectionObject($this);
$class = $refl->getShortName();

你到底在干什么?也许有更好的方法…我正在使用一个支持事件的框架。我有一个抽象类,它将某种数据插入数据库。我想做一个约定,它将自动“fire()”一些事件,例如:Event::fire({{child_class_name}}}}}}u insert',$something);我正在使用名称空间。我已经看过这个主题了。我的课不是“最后一点”,所以我不能从字符串中减去它。类名在名称空间字符串中没有“精确位置”,因此这不是一个解决方案。还有其他方法吗?“类部分”总是名称空间字符串的最后一部分,没有例外。如果你想取得不同的成就,你应该给出一个确切的例子。