ホームページ  >  記事  >  バックエンド開発  >  PHP の 3 つのアクセス制御モード (パブリック、プロテクト、プライベート) の違い、protectedprivate_PHP チュートリアル

PHP の 3 つのアクセス制御モード (パブリック、プロテクト、プライベート) の違い、protectedprivate_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:03:10835ブラウズ

phpのpublic、protected、privateの3つのアクセス制御モードの違い、protectedprivate

phpのpublic、protected、privateの3つのアクセス制御モードの違い

public: パブリックタイプ

サブクラスでは、self::var を介してパブリック メソッドまたはプロパティを呼び出し、parent::method を使用して親クラスのメソッドを呼び出すことができます

インスタンスでは $obj->var を通じてパブリック型のメソッドやプロパティを呼び出すことができます

protected: 保護されたタイプ
でも、

インスタンス内の $obj->var を介して保護された型のメソッドやプロパティを呼び出すことはできません

private: プライベート型
この型の属性またはメソッドは、このクラスでのみ使用できます。プライベート型の属性とメソッドは、このクラス、サブクラス、またはサブクラスのインスタンスで呼び出すことはできません


2. self とparent の違い
a) これら 2 つのオブジェクトはサブクラスでよく使用されます。それらの主な違いは、self は親クラスの public または protected プロパティを呼び出すことができますが、parent は呼び出すことができないことです

b).self:: 現在のクラスの静的メンバー (メソッドとプロパティ) を表します。$this とは異なり、$this は現在のオブジェクトを参照します

添付コード:

/**
*parent 親クラスではパブリックメソッドまたはプロテクトメソッドのみを呼び出すことができますが、親クラスの属性を呼び出すことはできません
* self プライベートタイプのメソッドと属性を除く親クラスのすべてのデータを呼び出すことができます
*/
class User{
public $name;
private $passwd;
protected $email;    
public function __construct(){
//print __CLASS__." ";
$this->name= 'simple';
$this->passwd='123456';
$this-> ;email = 'bjbs_270@163.com';
}
public function show(){
print "good ";
}
public function inUserClassPub lic() {
print __CLASS__.'::'。 __FUNCTION__." ";
}
protected function inUserClassProtected(){
print __CLASS__.'::'.__FUNCTION__." ";
}
プライベート 関数 inUserClassPrivate(){
print __CLASS__.':: '.__FUNCTION__." ";
}
}

class simpleUser extends User {
public function __construct(){
//print __CLASS__." ";
parent::__construct();
}

public function show(){
print $this->name."//public ";        
print $this->passwd."//private ";
print $this->email."//protected ";
}

public function inSimpleUserClassPublic () {
print __CLASS__。 '::'.__FUNCTION__." ";
}

保護された関数 inSimpleUserClassProtected(){
print __CLASS__.'::'.__FUNCTION__." ";
}

プライベート 関数 inSimpleUserClassPrivate() {
print __CLASS__.'::'.__FUNCTION__." ";
}
}

class adminUser extends simpleUser {
protected $admin_user;
public function __construct(){
//print __CLASS__." ";
parent::__construct();
}

public function inAdminUserClassPublic(){
print __CLASS__.'::'.__FUNCTION__ ." ";
}

inADMINUSERCLASSPROTECTED(){
プリント__class __。 '::' .__ function__。 "";
}

クラス管理者は adminUser を拡張します {
public function __construct(){parent::__construct();
}
}

/**
* クラスのインスタンスでは、インスタンス化を通じて呼び出せるのはパブリック プロパティとメソッドのみです
*/
$s = 新しい管理者( );
print '-------------------';
$s->show();
?>


http://www.bkjia.com/PHPjc/969249.html
www.bkjia.com
tru​​e
http://www.bkjia.com/PHPjc/969249.html

技術記事

PHPにおけるpublic、protected、privateの3つのアクセス制御モードの違い、protectedprivate PHPにおけるpublic、protected、privateの3つのアクセス制御モードの違い public: public型はサブクラスにある...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。