我可以对下面的代码段使用一些说明。虽然我没有定义任何静态方法,但我仍然可以利用LSB,并且在启动调用中如何创建对象有任何问题吗?当我使用新的static()时,开始调用按预期工作但我想确保我不会以某种方式将自己射入脚中。
class Person
{
public function doStuff()
{
echo "Person doing stuff";
}
public function start()
{
$person = new static();
//$person = new self();
$person->doStuff();
}
}
class CrazyPerson extends Person
{
public function doStuff()
{
echo "CrazyPerson doing stuff";
}
}
$s = new CrazyPerson();
$s->start();