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
true
http://www.bkjia.com/PHPjc/969249.html
技術記事
PHPにおけるpublic、protected、privateの3つのアクセス制御モードの違い、protectedprivate PHPにおけるpublic、protected、privateの3つのアクセス制御モードの違い public: public型はサブクラスにある...