0

问题说明

这里有一个 A 父类

class A
{
    public function __construct()
    {
    }

    public function __destruct()
    {
        echo "Destroy";
    }
}

子类 B,并且让 B 继承 A


use A;
class B extend A
{
    public function __construct()
    {
    }

    public function index()
    {
        echo "Method: index";
    }
}

$a = new A;

$a->index();

能说一下PHP执行的流程吗,父类 A 的析构函数何时会被执行?

查看全部 4 个回答

0

已采纳

由于A 是先被实例化的,所以 A 是最后被从栈内弹出,所有 A 的析构函数会最后执行

推荐答案

1

析构函数顺序与入栈顺序相反, "先进后出","后进先出" 后实例化,先从栈中弹出,执行析构函数

$a = new A;

$a->index();
与 B 类没啥关系吧?

这个问题与这个完全一致,可以参考这个答案PHP继承类时的执行顺序