メンバーメソッドとメンバー属性をクラスにカプセル化し、属性とメソッドの実装の詳細を非表示にし、パブリック、プロテクト、プライベートなどを通じてクラスメンバーのアクセス権を制限します。データは内部的に保護されており、許可されたメンバーのみがアクセスできるようにする メンバーメソッドのみを操作でき、メンバーは可能な限りカプセル化する必要があります。
パブリック: メソッドまたはプロパティは任意のスコープでアクセスでき、プロパティまたはメソッドにアクセス修飾子が指定されていない場合、デフォルトでパブリックになります。
protected: このクラスとサブクラスにはアクセスできますが、外部オブジェクトを呼び出すことはできません。
private: このクラス内でのみアクセスでき、サブクラスや外部オブジェクトから呼び出すことはできません。プライベートとしてマークされたメソッドまたは属性は、継承されたクラスで再定義できます。各クラスは、独自に定義されたプライベート メソッドのみを参照できます。
スコープに関しては、これら 3 つの修飾子は、public→protected→private のように大きいものから小さいものへと並べ替える必要があります。これがスコープ内にあると言われる理由は、クラスがいくつかの属性とメソッドをカプセル化するためです。データの「可視性」により、定義されたプロパティやメソッドをクラス外で自由に変更できなくなり、呼び出しのみが可能になります。これはカプセル化の利点であり、セキュリティも向上します。
コード例を示します:
class myClass{
public$public="Public";//public 属性
protected$protected="Protected";//protected 属性
private$private="Private";/ /private 属性
function Say_Hello(){//public 属性
//ほんの一例ですが、コンテンツを自分で追加します
}
$obj=new myClass();
echo$obj->public;
/ / echo$obj->protected;
//echo$obj->private;
上記の例を実行すると「Public」が取得されますが、 //echo$obj->private; のコメントを解除すると、次のエラーが発生します: 致命的なエラー: E:apachehtdocsexamplefile.php の 13 行目の保護プロパティ myClass::$protected にアクセスできません。これらのメンバーは他のクラスからは見えない可能性があるため、クラスの属性定義に自由にアクセスできないことがわかります。もちろん、「プライベート」として定義された属性にアクセスまたは変更する必要がある場合は、PHP が提供するシステム メソッド _get() および _set() を使用することもできます。
「ルート」クラス (親クラスまたは基本クラス) を生成します
構文: class Father{
}
構文: class Son extends Father{
}
PHP extends クラス継承 サンプルコード:
class父{
protected$name;
function__construct($name){//コンストラクター
$this->name=$name;
}
function work(){
echo"{$this->name}私は仕事中です;
}
function__destruct(){}//Destructor
}
class Son extends Father{//親クラスを継承
function play(){
echo"{$this->name}ゲームをプレイしています ;
}
}
$my_father=new Father("Dad");//親クラスオブジェクトを作成する
$my_father->work();
$my_son=newson("Son");
$my_son-> ; work();
$my_son->play();
分析: 親クラスの父で、一般的な属性とメソッドを定義し、次にサブクラスを定義します。サブクラスは親クラスのすべてのメソッドを継承するため、サブクラスにはコンストラクターとデストラクターが存在しないことがわかります。そのため、PHP クラスの継承である $my_son->work(); を呼び出すことができます。また、PHP では、クラス A が B を拡張し、C を拡張するなどの複数レベルの継承を行うことはできません。PHP ではこのような継承は無効です。多重継承を「実装」するには、他のメソッドは必要ありません。変装した。