亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php中public、private、protected三者的區別是什么

發布時間:2021-02-04 17:37:40 來源:億速云 閱讀:488 作者:Leah 欄目:開發技術

php中public、private、protected三者的區別是什么?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

一,public,private,protected的區別
public:權限是最大的,可以內部調用,實例調用等。
protected: 受保護類型,用于本類和繼承類調用。
private: 私有類型,只有在本類中使用。

二,實例

復制代碼 代碼如下:


<?php
error_reporting(E_ALL);
class test{
 public $public;
 private $private;
 protected $protected;
 static $instance;
 public&nbsp; function __construct(){
 $this->public&nbsp;&nbsp;&nbsp; = 'public&nbsp;&nbsp;&nbsp;&nbsp; <br>';
 $this->private&nbsp;&nbsp; = 'private&nbsp;&nbsp;&nbsp; <br>';
 $this->protected = 'protected&nbsp; <br>';
 }
 static function tank(){
 if (!isset(self::$instance[get_class()]))
 {
 $c = get_class();
 self::$instance = new $c;
 }
 return self::$instance;
 }&nbsp;&nbsp; &nbsp;
 public function pub_function() {
 echo "you request public function<br>";
 echo $this->public;
 echo $this->private;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //private,內部可以調用
 echo $this->protected;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //protected,內部可以調用
 $this->pri_function();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //private方法,內部可以調用
 $this->pro_function();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //protected方法,內部可以調用
 }
 protected&nbsp; function pro_function(){
 echo "you request protected function<br>";
 }
 private function pri_function(){
 echo "you request private function<br>";
 }
}
$test = test::tank();
echo $test->public;
echo $test->private;&nbsp;&nbsp;&nbsp; //Fatal error: Cannot access private property test::$private
echo $test->protected;&nbsp; //Fatal error: Cannot access protected property test::$protected
$test->pub_function();
$test->pro_function();&nbsp; //Fatal error: Call to protected method test::pro_function() from context
$test->pri_function();&nbsp; //Fatal error: Call to private method test::pri_function() from context
?>


從上面的例子中,我們可以看出,
public:    可以class內部調用,可以實例化調用。
private:   可以class內部調用,實例化調用報錯。
protected:  可以class內部調用,實例化調用報錯。

復制代碼 代碼如下:


<?php
class test{
 public $public;
 private $private;
 protected $protected;
 static $instance;
 public&nbsp; function __construct(){
 $this->public&nbsp;&nbsp;&nbsp; = 'public&nbsp;&nbsp;&nbsp;&nbsp; <br>';
 $this->private&nbsp;&nbsp; = 'private&nbsp;&nbsp;&nbsp; <br>';
 $this->protected = 'protected&nbsp; <br>';
 }
 protected function tank(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //私有方法不能繼承,換成public,protected
 if (!isset(self::$instance[get_class()]))
 {
 $c = get_class();
 self::$instance = new $c;
 }
 return self::$instance;
 }&nbsp;&nbsp; &nbsp;
 public function pub_function() {
 echo "you request public function<br>";
 echo $this->public;
 }
 protected&nbsp; function pro_function(){
 echo "you request protected function<br>";
 echo $this->protected;
 }
 private function pri_function(){
 echo "you request private function<br>";
 echo $this->private;
 }
}
class test1 extends test{
 public function __construct(){
 parent::tank();
 parent::__construct();
 }
 public function tank(){
 echo $this->public;
 echo $this->private;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Notice: Undefined property: test1::$private
 echo $this->protected;
 $this->pub_function();
 $this->pro_function();
 $this->pri_function();&nbsp;&nbsp;&nbsp; //Fatal error: Call to private method test::pri_function() from context 'test1'
 }
 public&nbsp; function pro_extends_function(){
 echo "you request extends_protected function<br>";
 }
 public function pri_extends_function(){
 echo "you request extends_private function<br>";
 }
}
error_reporting(E_ALL);
$test = new test1();
$test -> tank();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //子類和父類有相同名字的屬性和方法,實例化子類時,子類的中的屬性和方法會蓋掉父類的。
?>


從上面的例子中,我們可以看出,
public:    test中的public可以被繼承。
private:   test中的private不可以被繼承。
protected:test中的protected可以被繼承。
static:   test中的static可以被繼承。

關于php中public、private、protected三者的區別是什么問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大渡口区| 龙泉市| 温宿县| 汉中市| 门源| 临江市| 乡宁县| 东光县| 称多县| 班戈县| 志丹县| 海盐县| 伊宁市| 永顺县| 淮南市| 荣昌县| 湘潭市| 喜德县| 嘉黎县| 张家口市| 荆门市| 团风县| 建瓯市| 炎陵县| 嘉善县| 抚顺市| 孝感市| 射洪县| 宁津县| 二连浩特市| 德清县| 疏附县| 东源县| 南京市| 屯门区| 永城市| 河西区| 嘉峪关市| 鱼台县| 博白县| 九龙城区|