PHPクラスのカプセル化とは何を意味しますか? PHPクラスのカプセル化の解析

不言
リリース: 2023-04-03 13:10:01
オリジナル
2630 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!