1
<?php
class B extends A
{
    public $attribute2;
    function operation2()
        {
            echo 'operation2';
        }
}
$b = new B();
$b->operation1();
$b->operation2();
class A
{
    public $attribute1;
    function operation1()
        {
            echo 'operation1';
        }
}

它显示了输出:operation1operation2

问题:

我把 放在class A{}脚本的末尾,所以当它转到第一行时class B extends A,我认为它会显示一条错误消息,类似于undefined class A,但它没有,为什么?

4

2 回答 2

4

在文件中定义这些类的顺序无关紧要。PHP 不会简单地逐行遍历您的脚本。它将解析整个文件,加载任何类,并执行程序代码。

如果我没记错的话,情况并非总是如此。我认为 PHP 3 在这方面遇到了困难。

于 2013-07-22T03:33:08.433 回答
0

因为 PHP 是解释型语言,它会预编译一些代码。例如 'include' , 'require' ,它也会预先编译

于 2013-07-22T03:39:28.220 回答