在PHP中获取子类的名称
假设我正在构建一个基类,它将由children类扩展。因此,基类称为在PHP中获取子类的名称,php,oop,Php,Oop,假设我正在构建一个基类,它将由children类扩展。因此,基类称为base,子类可以是Child1,Child2,等等 在基类的构造函数中,如何获取Child1/Child2的值 这都是使用PHP编辑的:不知道获取类,忽略这个;) 您可以尝试\uuuu类\uuuuu,但它可能无法正常工作 解决方法是将类名指定为基类的属性 编辑:这不起作用(我使用了以下代码) 构造(){ 回声类; } } 我建议将$b的名称作为参数传递给a,例如: <?php class a { protecte
base
,子类可以是Child1
,Child2
,等等
在基类的构造函数中,如何获取Child1/Child2的值
这都是使用PHP编辑的:不知道获取类,忽略这个;) 您可以尝试
\uuuu类\uuuuu
,但它可能无法正常工作
解决方法是将类名指定为基类的属性
编辑:这不起作用(我使用了以下代码)
构造(){
回声类;
}
}
我建议将$b的名称作为参数传递给a,例如:
<?php
class a {
protected $name;
public function __construct() {
echo $this->name;
}
}
class b extends a {
protected $name = __CLASS__;
}
$b = new b;
编辑:不知道获取类
,忽略此项;)
您可以尝试\uuuu类\uuuuu
,但它可能无法正常工作
解决方法是将类名指定为基类的属性
编辑:这不起作用(我使用了以下代码)
构造(){
回声类;
}
}
我建议将$b的名称作为参数传递给a,例如:
<?php
class a {
protected $name;
public function __construct() {
echo $this->name;
}
}
class b extends a {
protected $name = __CLASS__;
}
$b = new b;
只需调用($this)-但是请注意,基类方法在根据使用它的派生类来改变其行为方面没有实际意义。这就是派生类的全部要点:)只需调用($this)-但是请注意,基类方法在根据使用它的派生类改变其行为方面没有实际意义。这就是派生类的全部要点:)基类实际上永远不应该依赖于关于子类的信息---
回答你的问题:
class base {
public function __construct() {
print "Class:" . get_class($this) . "\n";
}
}
class child extends base{
public function __construct() {
parent::__construct();
}
}
$c = new child();
仅供将来参考——这可以在静态上下文中使用get_called_class()实现,但这仅在PHP>=5.3中可用,基类实际上不应该依赖于有关子类的信息---
回答你的问题:
class base {
public function __construct() {
print "Class:" . get_class($this) . "\n";
}
}
class child extends base{
public function __construct() {
parent::__construct();
}
}
$c = new child();
仅供将来参考——这可以在静态上下文中使用get_called_class()实现,但这仅适用于PHP>=5.3我知道这有点旧,但我想我会提到它在PHP 5.2.17中对我有效“基类真的不应该依赖于关于子类的信息”——关于抽象类呢。在某些情况下,它可能会对我有用,因为你必须四处传送东西。我知道这有点旧,但我想我会提到它在PHP5.2.17中对我有效“基类真的不应该依赖于关于子类的信息”——关于抽象类呢。在某些情况下,它可能会对您有所帮助,因为您必须四处传送内容。如果您尝试实现一个非常简单的MVC框架,则使用子类的名称查找视图非常有用。如果您尝试实现一个非常简单的MVC框架,则使用子类的名称查找视图非常有用。