<?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
,但确实如此不,为什么?
答案 0 :(得分:4)
在文件中定义这些类的顺序无关紧要。 PHP并不是简单地逐行完成您的脚本。它将解析整个文件,加载任何类,并执行过程代码。
如果我没记错的话,情况并非总是如此。我认为PHP 3对此有困难。
答案 1 :(得分:0)
因为PHP是解释语言,所以它会预编译一些代码。例如'include','require',它也会预先整理