3

クラスで変数を初期化する必要があるのはなぜですか?

$test = new myclass();
class myclass {
    private $var; // WHY THIS LINE?

    public function sayHello() {
        $this->var = 'hello';
        echo $this->var;
    }
}
$test -> sayHello();

この例で行を削除すると、private $var;機能します。

クラスの変数を初期化する必要があるのはなぜですか?

4

3 に答える 3

10

変数の初期化にはいくつかの利点があります。

  • 意図的に変数名を使用することを宣言します。これは、宣言されていない変数名になるタイプミスを強調するのに役立ちます
  • 変数のスコープを設定できます。パブリックにするか、保護するか、プライベートにするか。あなたはそれを静的にしたいかもしれません
  • PHPは、あなたが何をしているかについての情報を持っています。より高速な実行のために最適化するのに役立つ場合があります。

変数を宣言することをお勧めしますが、必須ではありません。

于 2013-09-20T14:45:23.763 に答える
0

あなたの質問を理解しているかどうかはわかりませんが、コード全体がそれなしでも問題なく機能するのに、追加のコード行を使用する理由を意味していると思います。

答えは - もちろん、使用する必要はありませんprivate $var;。しかし、PHP エンジンにとっては問題にならないという事実にもかかわらず、コードが大きくなると非常に役立ちます。数千行の長さのクラスがあると想像してください。多くの変数のうち、クラス内でのみ使用する変数 ( private変数) と外部で使用できる変数 ( public変数) を毎回チェックするだけでは、惨事になります。もし今それを見ることができなくても、心配しないでください、きっとすぐにその有用性を発見するでしょう;)

于 2013-09-20T14:51:48.050 に答える
0

private のようなアクセス指定子を宣言しない場合、デフォルトは public です。

于 2013-09-20T14:59:54.533 に答える