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 は、単純にスクリプトを 1 行ずつ処理するわけではありません。ファイル全体を解析し、クラスをロードして、手続き型コードを実行します。

私の記憶が正しければ、これは必ずしもそうではありませんでした。PHP 3 はこれに苦労したと思います。

于 2013-07-22T03:33:08.433 に答える
0

PHP は解釈される言語であるため、一部のコードはプリコンパイルされます。'include' 、 'require' など、プリコンパイルも行います

于 2013-07-22T03:39:28.220 に答える