2017-06-09 12 views
-1

私はphopのoopの概念を理解しようとしています。 私の質問:なぜプロパティ(ここで$ resultと$ operation)がクラスに追加されますが、オブジェクトのプロパティが設定されているので、それらを追加してvar_dumpするとうまくいきます。 例:なしphp oopなぜクラスにプロパティを追加する

class Calculator { 

    protected $result; 
    protected $operation; 

    public function setOperation ($operation) { 
    $this->operation = $operation; 
    } 

} 

、ここで:

class Calculator { 

    public function setOperation ($operation) { 
    $this->operation = $operation; 
    } 

} 

なぜこれは時々私が上に宣言されたプロパティせずにクラスを参照してください、重要なのでしょうか?

+1

が存在しない場合は、PHPはpublic'プロパティ 'としてそれらを定義します。定義した場合、必要に応じて可視性を指定できます。もし定義できれば定義するほうが良いでしょうが、phpは__setと__getというマジックメソッドを使ってプロパティをオーバーロードすることができます。 –

+0

詳細なマニュアルを読む必要があるので、私はこのトピックを議論の対象外としています。http://php.net/manual/en/language.oop5.php –

答えて

3

これは可視性を定義できるようにするためです。時には、同じクラスのメソッドだけを使って変更したい変数を保持するクラスがあります。クラス内の変数を明示的に定義しないと、変数は常にpublicになり、どのスコープでも変更できます。

http://php.net/manual/en/language.oop5.visibility.php

関連する問題