PHPの3つのアクセス許可(oop)の違いは何ですか

黄舟
リリース: 2023-03-16 10:40:01
オリジナル
4264 人が閲覧しました

PHPの3つのアクセス許可(oop)の違いは何ですか

PHP オブジェクト指向 (oop) には 3 つのアクセス権があります:

public: パブリック型

特徴: 外部から呼び出し可能、内部から呼び出し可能、サブクラス呼び出し可能

サブクラス内 クラス内では、self::var を介してパブリック メソッドまたは属性を呼び出すことができ、parent::method は、$obj->var を介して親クラスのメソッドを呼び出すことができます。 protected 保護された型

特徴: 外部からは呼び出すことはできませんが、内部からは呼び出すことができます

サブクラスでは、保護されたメソッドまたはプロパティを self::var を通じて呼び出すことができ、parent::method は親クラスのメソッドを呼び出すことができます

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

private: プライベート型

特徴: 外部から呼び出し不可、内部から呼び出し可能、サブクラスから呼び出し不可

このプロパティまたはメソッドtype は in でのみ使用できます このクラスで使用すると、プライベート型のプロパティとメソッドをこのクラス、サブクラス、またはサブクラスのインスタンスで呼び出すことはできません

コード例

<?php  
	//final类不能被继承,final类不能被重写
	//public 外部可调用,内部可调用,子类可调用
	//protected 受保护类   外部不可调用   子类可以调用
	//private私有的   外部不可调用   子类不可调用
class human{
	//公有的
	public $money = 1000;
	//受保护的
	protected $che = "bmw";
	//私有的
	private $flower = "meigui";
 
	//调用公有类
	public function t1(){
		echo $this->money;
	}
	//调用受保护的
	public function t3(){
		echo $this->che;
	}
	//调用私有的
	public function t5(){
		echo $this->flower;
	}
}
 
class stu extends human{
	//子类调用公有的
	public function t2(){
		echo $this->money;
	}
	//子类调用受保护的
	public function t4(){
		echo $this->che;
	}
	//子类调用私有的
	public function t6(){
		echo $this->flower;
	}
 
}
 
//实例化对象
$stu = new stu();
echo $stu->money;
echo $stu->t1();
echo $stu->t2();
echo $stu->t3();
echo $stu->t4();
echo $stu->t5();
echo $stu->t6();
ログイン後にコピー
補足: self との違いおよびparent

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

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

さらに関連する知識については、

PHP 中国語 Web サイト

をご覧ください。 !

以上がPHPの3つのアクセス許可(oop)の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート