PHP-扩展的_构造
我想知道你是否能帮我 我有两个班,一个扩展另一个。。B类将通过各种不同的对象进行扩展,并用于公共数据库交互。。现在我想让B类处理它的连接和断开,而不需要来自A类或任何外部输入的指示 据我所知,问题是扩展类不会自动运行其_构造函数。。有办法解决这个问题吗 提前谢谢PHP-扩展的_构造,php,class,constructor,extends,Php,Class,Constructor,Extends,我想知道你是否能帮我 我有两个班,一个扩展另一个。。B类将通过各种不同的对象进行扩展,并用于公共数据库交互。。现在我想让B类处理它的连接和断开,而不需要来自A类或任何外部输入的指示 据我所知,问题是扩展类不会自动运行其_构造函数。。有办法解决这个问题吗 提前谢谢 class a extends b { public function __construct() { } public function validateStuff() { $this
class a extends b
{
public function __construct()
{
}
public function validateStuff()
{
$this->insert_record();
}
}
class b
{
public function __construct()
{
$this->connect();
}
protected function connect()
{
return true;
}
public function insert_record()
{
return true;
}
}
我不确定我是否完全理解您的要求,但是您可以从孩子的构造函数调用parents-construct方法
parent::__construct();
这是我所知道的唯一选项。在
a::\u-construct()
中调用parent::\u-construct()
:
如果您没有执行任何特定于a的操作,则可以完全省略a的构造函数。如果实例化子类a,则类b中定义的父类
\u construct()
方法将自动运行,除非类a中定义了\u construct()
方法
class a extends b {
}
class b {
public function __construct()
{
echo 'In B Constructor';
}
}
$x = new a();
如果类a中定义了\uuu构造()
方法,则这将覆盖类b中\uu构造()
方法的使用。。。。它将运行而不是类b\uu construct()
方法
class a extends b {
public function __construct()
{
echo 'In A Constructor';
}
}
class b {
public function __construct()
{
echo 'In B Constructor';
}
}
$x = new a();
因此,如果您的子类定义了一个\uu construct()
方法,那么如果您还想执行该方法,则需要显式调用父类的构造函数
class a extends b {
public function __construct()
{
parent::__construct();
echo 'In A Constructor';
}
}
class b {
public function __construct()
{
echo 'In B Constructor';
}
}
$x = new a();
我根本不想从类a调用构造函数。。我希望找到一个方法来应用b类的构造函数自动运行..啊,这就是答案。。将构造函数从类A中排除,类B就运行了!谢谢我根本不想从类a调用构造函数。。我希望找到一个方法来应用b类的构造函数自动运行。谢谢:)-stackoverflow非常擅长拥有和查找相关信息,您可以沉迷于这样的工作流中,“就像,我知道这一点,但我只是想确保我没有在某个地方遇到PHP直觉上的小怪癖”-谢谢哈哈!
class a extends b {
public function __construct()
{
parent::__construct();
echo 'In A Constructor';
}
}
class b {
public function __construct()
{
echo 'In B Constructor';
}
}
$x = new a();