-2

重複の可能性:
PHPではクラス定義の順序は重要ですか?

class a {
    function __construct () {
        $obj = new b();
        echo $obj->sum();
    }
}

 class b  {

    function sum () {
        return 3+4;
    }

 }


$obj_a = new a();

このコードは機能しますが、このコードがどれだけ正当化されるのか興味がありますか?つまり、最初にクラスaが書き込まれ、彼ではクラスbと呼ばれますが、クラスbはaの後に書き込まれます。この例では、aの前にクラスbを記述した方がよいでしょうか。意味がない?

4

5 に答える 5

4

いいえ、ソース ファイルで 2 つのクラスが定義されている順序は関係ありません。両方が同じファイルで定義されている限り、自由に移動できます。

クラスが同じファイルで定義されていない場合、事態はもう少し複雑になる可能性がありますが、この種のコードに影響を与える方法ではありません。

于 2012-10-08T11:52:23.087 に答える
2

その特定のコードには、私たちが「魔法」と呼ぶ要素が含まれています。bクラスを定義する必要があることをコード自体から推測する方法はありません。

従うべき一般的なルールは、自分のコードが何をするのかを理解するために先読みをしてはならないということです。

そういう意味では、そうですね。Classb 最初に定義し、次に Classを定義aし、次にオブジェクトを呼び出します。

于 2012-10-08T11:52:54.660 に答える
1

順序を逆にする必要はありません。PHP はコードを実行する前にコンパイルします。

于 2012-10-08T11:52:42.757 に答える
0

ファイルを実行すると、最初の実行行が検索され、この行は

$obj_a = new a();

クラスや関数の初期化には依存しません。したがって、どのような順序でもコードは機能します。

于 2012-10-08T11:54:23.857 に答える
0

クラスがファイルに配置される順序は重要ではありません。別のファイルに配置されたクラスについては、この回答を確認してください。

于 2012-10-08T11:53:02.703 に答える