Php 在不通过参数传递值的情况下获取子类名
这个问题很难问,因为它似乎很难回答 我在抽象类Php 在不通过参数传递值的情况下获取子类名,php,oop,Php,Oop,这个问题很难问,因为它似乎很难回答 我在抽象类parent{}中声明了一个方法,该方法在子类foo{}中得到响应 此方法需要当前类名,即foo才能工作,因此如何在不通过参数传递的情况下获取此名称 实例 这是子类,应该只包含一个用户名 class foo extends parent{ echo $this->init(); // I could pass the class name through the argument, but I am looking for other
parent{}
中声明了一个方法,该方法在子类foo{}
中得到响应
此方法需要当前类名,即foo
才能工作,因此如何在不通过参数传递的情况下获取此名称
实例
这是子类,应该只包含一个用户名
class foo extends parent{
echo $this->init();
// I could pass the class name through the argument, but I am looking for other alternatives
}
\uuuu CLASS\uuuu
是声明类(您正在使用它的类),而get\u CLASS
将获取所提供对象的具体类。因此,get\u class($this)
将返回与\uuu class\uuu
或其子类之一相同的值
\uuuu CLASS\uuuu
是声明类(您正在使用它的类),而get\u CLASS
将获取所提供对象的具体类。因此,get\u class($this)
将返回与\uu class\uuu>或其子类相同的值。@sroes有答案,但您的代码示例可能类似于:
abstract class parentclass{
public function init(){
echo "I am running from class ....";
echo __CLASS__;
echo ' But I am ' . get_class($this);
}
}
class foo extends parentclass{
}
$f = new foo();
$f->init();
显示constCLASS和get_CLASS()@sroes之间的差异,您的代码示例可能是这样的:
abstract class parentclass{
public function init(){
echo "I am running from class ....";
echo __CLASS__;
echo ' But I am ' . get_class($this);
}
}
class foo extends parentclass{
}
$f = new foo();
$f->init();
显示const类和get_CLASS()之间的差异,非常感谢。只是出于好奇,\uu CLASS\uuuuuuuuu
为什么不工作?非常感谢。只是出于好奇,\uu CLASS\uuuuuuuu
为什么不工作?我知道。我试过\uuuu CLASS\uuuuu
,但get\u CLASS()
似乎成功了。我只是不明白这两个类的名称有什么不同。“类和实例之间的差异”说似乎sroes已经消失了,尽管他给出了答案,你解释了问题txsWell tbh,@sroes在我试图解决问题时给出了正确的答案,我只是在举例说明。我知道。我试过\uuuu CLASS\uuuuu
,但get\u CLASS()
似乎成功了。我只是不明白这两个类的名称是如何不同的。“类和实例之间的差异”说似乎sroes已经消失了,尽管他给出了答案,你解释了问题txsWell tbh,@sroes在我试图解决问题时给出了正确的答案,我只是举例说明。
abstract class parentclass{
public function init(){
echo "I am running from class ....";
echo __CLASS__;
echo ' But I am ' . get_class($this);
}
}
class foo extends parentclass{
}
$f = new foo();
$f->init();