php では、php クラスのカプセル化は重要な内容であり、理解するのが比較的難しい部分です。php クラスのカプセル化を学ぶ前に、public、protected、および private 修飾子を理解する必要があります。コンテンツのこの部分を詳細に分析してみましょう。
Public: メソッドまたはプロパティは任意のスコープでアクセスでき、これがデフォルトです。プロパティまたはメソッドにアクセス修飾子が指定されていない場合、それはパブリックになります。
protected: メソッドまたはプロパティには、クラスまたは継承クラスのメンバーからのみアクセスできます。
private: メソッドまたはプロパティには、クラスのメンバーからのみアクセスでき、継承されたクラスのメンバーからはアクセスできません。プライベートとしてマークされたメソッドまたはプロパティは、継承されたクラスで再定義できます。各クラスは、独自のプライベート メソッドのみを参照できます。
これら 3 つの修飾子は、次のようにスコープの観点から大きいものから小さいものに並べ替える必要があります。
public→protected→private がスコープ内にあると言われる理由は、クラスが同じであるためです。関数と同様に、一部の属性とメソッドは PHP クラスにカプセル化されています。このカプセル化により、データの「可視性」が決定されるため、定義されたプロパティとメソッドをクラス外で自由に変更することはできず、呼び出すことのみが可能になります。これはカプセル化の利点であり、セキュリティも向上します。これらの修飾子の役割を説明するには、次のコードを見てください:
< ?php class myClass{ public $public="Public"; protected $protected="Protected"; private $private="Private"; function say_Hello(){ //我现在什么也不做,等下再告诉你 } } $obj=new myClass(); echo $obj->public; //echo $obj->protected; //echo $obj->private; ?> < ?php class myClass{ public $public="Public"; protected $protected="Protected"; private $private="Private"; function say_Hello(){ //我现在什么也不做,等下再告诉你 } } $obj=new myClass(); echo $obj->public; //echo $obj->protected; //echo $obj->private; ?>
上記の例を実行すると、「Public」が取得されますが、//echo を入力すると、 $obj->private; のコメントを削除すると、次のエラーが発生します: Fatal error: Cannot access protected E:\apache\htdocs\example\file.php のプロパティ myClass::$protected 13行目。
クラスの属性定義に自由にアクセスできない、つまり、PHP クラスのカプセル化で定義されている一部の操作を変更できないことがわかります。これらのメンバーは他のクラスには表示されない可能性があるため、このクラスのメンバーが「外部」にはわかりません。
もちろん、「プライベート」として定義されたプロパティにアクセスまたは変更する必要がある場合は、PHP が提供するシステム メソッド _get() および _set() を使用することもできます。今はまだ理解しているだけなので、これについては後で詳しく学びます。
おすすめ関連記事:
PHPでカプセル化したHttpClientクラスの使用例、httpclientのカプセル化
カプセル化と継承の詳しい解説PHP クラスの php カプセル化の詳細な説明
関連ビデオの推奨事項:
PHP オブジェクト指向の考え方を使用して各クラスのカプセル化を実装する
以上がPHPクラスのカプセル化とは何を意味しますか? PHPクラスのカプセル化の解析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。