この記事では、php5 の public、private、protected の違いを紹介します。これら 3 つはすべてクラスで使用されますが、属性はまったく異なります。
public: パブリックプロパティまたはメソッド
self::var または self::method を介してサブクラスで呼び出すことができます。parent::method を介して親クラスのメソッドを呼び出すことはできますが、パブリック プロパティを呼び出すことはできません。
インスタンス内の $obj->var または self::method 経由で呼び出すことができます
protected: 保護されたタイプ
サブクラスの self::var または self::method を通じて呼び出すことができ、parent::method を通じて親クラスのメソッドを呼び出すことができます
保護された型のメソッドまたはプロパティは、インスタンス内の $obj->var を通じて呼び出すことはできません
private: プライベートタイプ
この型の属性またはメソッドは、このクラス内でのみ使用できます。プライベート型の属性およびメソッドは、このクラス、サブクラス、またはサブクラスのインスタンスでは呼び出すことができません。
2.自分と親の違い
a) これら 2 つのオブジェクトはサブクラスでよく使用されます。それらの主な違いは、self は親クラスの public または protected プロパティを呼び出すことができますが、parent は呼び出すことができないことです
b).self:: 現在のクラスの静的メンバー (メソッドとプロパティ) を表します。$this とは異なり、$this は現在のオブジェクトを参照します
。
例
コードは次のとおりです
コードをコピー |
|
クラスBaseClass {
パブリック $public = 'パブリック';
プライベート $private = 'プライベート';
保護 $protected = '保護';
関数__construct(){
}
関数 print_var(){
Print $this->public;echo '
';
$this->private echo '
';
を印刷します。
$this->protected; を印刷します。 echo '
';
}
}
class サブクラスは BaseClass を拡張します {
// パブリック $public = 'public2';
protected $protected ='protected2';
関数 __construct(){
echo $this->protected;// クラスは protected として定義されているため、アクセスできます。そのため、このクラスまたはサブクラスで使用でき、値はサブクラスで繰り返すことができます
エコー '
';
echo $this->private;//error プライベートなので、それが定義されている基本クラスでのみ使用できます
}
}
$obj1 = 新しい BaseClass();
$obj1->print_var();
//echo $obj1->protected;//error protected なので、このクラス内、またはサブクラスと親クラス内でのみ呼び出すことができます
//echo $obj1->private;//error 上記の private と同じで、このクラス内でのみ呼び出すことができます
echo $obj1->public;
エコー "
";
$obj2 = 新しいサブクラス();
エコー '
';
echo $obj2->public;echo '
';
echo $obj2->protected;
//echo $obj2->private;//エラー
//echo $obj2->protected;//エラー
?>
概要
public はグローバルを意味し、クラスの内部サブクラスと外部サブクラスの両方からアクセスできます。
private はプライベートを意味し、このクラス内でのみ使用できます。
protected は保護されていることを意味し、このクラス、サブクラス、または親クラスでのみアクセスできます。
http://www.bkjia.com/PHPjc/632611.htmlwww.bkjia.com
truehttp://www.bkjia.com/PHPjc/632611.html技術記事この記事では、php5 における public、private、protected の違いを紹介します。これら 3 つはすべてクラスで使用されますが、属性はまったく異なります。 public: サブクラスのパブリック プロパティまたはメソッド...