* 構築メソッドとアクセス制御(クエリーとセッター)
* 構築メソッド:
* 1. 固定メソッド名: __constructor()
* 2. 機能: オブジェクト作成時に自動的に完了する必要がある操作を宣言し、オブジェクトの属性を初期化する、クラス内のメソッドを自動的に呼び出すなど
* 3. 標準化されたクラスはコンストラクターメソッドを1つだけ持つ必要があり、持つこともできます
* 補足:二重アンダースコアで始まるメソッドはマジックメソッドと呼ばれ、メソッドとは異なります通常のメソッドの比較:
* 1. 異なる呼び出し元: オブジェクトによって直接呼び出され、ユーザーには権限がありません
* 2. 異なる呼び出しシナリオ: 特定のシナリオでのみ呼び出すことができ、自動的に呼び出されます
* 共通のトリガー マジックメソッドの呼び出しシナリオは次のとおりです:
* 1. オブジェクトの初期化、2. オブジェクトのクローン作成、5. オブジェクトの破棄、 class でコンストラクターが宣言されている場合、宣言時に属性を初期化する必要はありません
* 初期化は不要になったので、なぜ $name に空の文字列を与える必要があるのかと疑問に思うかもしれません。$age は0、そして $stature は空の配列ですか?
* 理由は次のとおりです: 現在、配列とオブジェクトは型ヒントをサポートしていますが、文字列などのスカラーと数値型はまだサポートされていません。 * したがって、属性にその型を表す初期値を与えると、型ヒントの役割を果たすことができます。これは良い習慣です
*
* クラス属性がクラス内の構築メソッドを通じて初期化されるとき、クラスの外部で値を直接割り当てる必要はありません。属性は初期化されます
* したがって、セキュリティとデータのカプセル化のニーズのために、クラスの属性を直接取得する必要はありません。外部への直接アクセスは許可しません
* クラス属性を変更するには、private キーワードを使用するだけです
* private: このクラスメソッド内でのみアクセスでき、外部クラスやサブクラスからはアクセスできません
*クラスがプライベートである場合、アクセスインターフェイスを外部に提供する必要があります
* このインターフェイスはクラスメソッドを通じて実装され、アクセス制御はパブリックです。つまり、クラスは外部からアクセスできます
* 必要な検出は外部で実行できますインターフェイス メソッドでアクセスして、リクエストが正当であり、データが安全で意味のあるものであることを確認します
* 外部クエリ (読み取り) 操作の場合は、問題を解決するために Query メソッドを設定します
* 推奨されるクエリ メソッド名は次のとおりです: get + 属性name、属性名の最初の文字は大文字で、キャメルケースの命名方法が使用されます
* クエリーは通常、パラメーターを渡す必要はありません。パラメーターが渡される場合、それらは通常クエリ条件です。
りー