如果您现在正在跟随OOP,则应删除$ cd的全局调用,将其设置为父母或子女的成员变种。
正如我所看到的那样,构造函数通常在您实例化对象时调用,而不是通过同一类的另一种方法(如CD_Log所执行的方法)来调用。
例如:
$myCdObject = new MyCdClass(); // Automatically calls constructor
$myCdObject->Cd_Log($string);
利用上述例子你是确保CD_Log方法仅处理log
逻辑。除非你让CD_Log静态函数,那么你可以实例中的类:
public static function CD_Log($id)
{
$myCdObject = MyCdClass(); // Automatically calls constructor
// Continue with `log` logic
}
要回答你的问题,你可能想在子类构造函数,它会调用父类的构造明确:
class parent
{
public function __construct($id)
{
$this->id = $id;
}
}
class child extends parent
{
public function __construct($id)
{
// Going to take advantage of shared logic
parent::__construct($id);
// Now lets do some child class specific stuff
}
}
谢谢!顺便说一句,如果孩子不需要父母的功能,我应该使用extrends方法吗?当父母做事情时,只需要父母的孩子去做其他工作? – Jenny
如果这些类将共享任何属性,无论它是成员变量还是方法,最好进行扩展。 –
谢谢!这很清楚! – Jenny