ホームページ > バックエンド開発 > PHPチュートリアル > php5_PHP チュートリアルの public、private、protected の 3 つのクラス属性の違い

php5_PHP チュートリアルの public、private、protected の 3 つのクラス属性の違い

WBOY
リリース: 2016-07-13 10:50:56
オリジナル
882 人が閲覧しました

この記事では、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

tru​​ehttp://www.bkjia.com/PHPjc/632611.html技術記事この記事では、php5 における public、private、protected の違いを紹介します。これら 3 つはすべてクラスで使用されますが、属性はまったく異なります。 public: サブクラスのパブリック プロパティまたはメソッド...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート