用于非静态调用的PHP Late Static Binding

时间:2015-07-08 23:58:16

标签: php

我可以对下面的代码段使用一些说明。虽然我没有定义任何静态方法,但我仍然可以利用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();

0 个答案:

没有答案