亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php 面向對象訪問控制 public,private,protected詳解

2024-09-04 11:43:38
字體:
來源:轉載
供稿:網友

文章利用舉例說明了關于PHP5面向對象訪問控制 Public,private,protected詳細說明,有需要的朋友可以參考一下.

在PHP5中增強了面向對象的機制,加入了面向對象常見的public、private、protected這樣的訪問控制機制.從字面意思來理解:

Public 無疑是公共的意思,意思是說類本身和其外部的子類都可以訪問這個屬性或者方法;

Private 英文翻譯過來就是私有的意思,只能是類本身在類的內部才能訪問——實例化的對象句柄不能訪問該屬性和方法,子類也不能訪問;

Protected 受保護的屬性或者方法,這個屬性或者是方法只能被類本身或者子類的內部訪問,實例化的對象句柄不能訪問.

現在我們舉個例子來說這個問題.

假設有一個寶石博物館的管理員 小李,把倉庫中的寶石分為三個類別,紅寶石,藍寶石,綠寶石.并且劃分了屬性,紅寶石是國家的任何人都可以參觀標簽為(public),藍寶石管理員小李家族傳下來的(protected),綠寶石是小李自己在山上見到的(private).

那么我們可以這樣認為:

public標簽的紅寶石,是國家的——全民所有,只要是合法的國家的公民都能夠參看和拍照.

Protected 這個是受保護的,只有小李家族的人(小李的孩子或者孫子)在特定的房間里面才能參觀和拍照,不準拿到房間外邊看——太小氣了!

Private 這個是私有的,小李不想讓其他人知道,更不想讓拍照了,所以只能供小李在小李的房間里看看而已,其他的人即使小李的孩子們都沒有辦法看到

實例代碼如下:

  1. <?php  
  2. error_reporting(E_ALL);  
  3.  
  4. class test{  
  5. public $public;  
  6. private $private;  
  7. protected $protected;  
  8. static $instance;  
  9. public function __construct(){  
  10. $this->public = 'public <br>';  
  11. $this->private = 'private <br>';  
  12. $this->protected = 'protected <br>';  
  13. }  
  14. static function tank(){  
  15. if (!isset(self::$instance[get_class()]))  
  16. {  
  17. $c = get_class();  
  18. self::$instance = new $c;  
  19. }  
  20.  
  21. return self::$instance;  
  22. }  
  23.  
  24. public function pub_function() {  
  25. echo "you request public function<br>";  
  26. echo $this->public;  
  27. echo $this->private//private,內部可以調用  
  28. echo $this->protected//protected,內部可以調用  
  29. $this->pri_function(); //private方法,內部可以調用  
  30. $this->pro_function(); //protected方法,內部可以調用  
  31. }  
  32. protected function pro_function(){  
  33. echo "you request protected function<br>";  
  34. }  
  35. private function pri_function(){  
  36. echo "you request private function<br>";  
  37. }  
  38. }  
  39.  
  40. $test = test::tank();  
  41. echo $test->public;  
  42. echo $test->private//Fatal error: Cannot access private property test::$private  
  43. echo $test->protected//Fatal error: Cannot access protected property test::$protected  
  44. $test->pub_function();  
  45. $test->pro_function(); //Fatal error: Call to protected method test::pro_function() from context  
  46. $test->pri_function(); //Fatal error: Call to private method test::pri_function() from context  
  47.  
  48. ?>  
  49.  
  50.  
  51. <?php error_reporting(E_ALL);  class test{  public $public;  private $private;  protected $protected;  static $instance;  public  function __construct(){  $this->public    = 'public     <br>';  $this->private   = 'private    <br>';  $this->protected = 'protected  <br>';  }  static function tank(){  if (!isset(self::$instance[get_class()]))  {  $c = get_class();  self::$instance = new $c;  }   return self::$instance;  }       public function pub_function() {  echo "you request public function<br>";  echo $this->public;  echo $this->private;        //private,內部可以調用  echo $this->protected;      //protected,內部可以調用  $this->pri_function();      //private方法,內部可以調用  $this->pro_function();      //protected方法,內部可以調用  }  protected  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;    //Fatal error: Cannot access private property test::$private echo $test->protected;  //Fatal error: Cannot access protected property test::$protected $test->pub_function(); $test->pro_function();  //Fatal error: Call to protected method test::pro_function() from context $test->pri_function();  //Fatal error: Call to private method test::pri_function() from context  ?> 
  52. 從上面的例子中,我們可以看出, 
  53. public: 可以class內部調用,可以實例化調用. 
  54. private: 可以class內部調用,實例化調用報錯. 
  55. protected: 可以class內部調用,實例化調用報錯. 
  56. <?php  
  57.  
  58. class test{  
  59. public $public;  
  60. private $private;  
  61. protected $protected;  
  62. static $instance;  
  63.  
  64. public function __construct(){  
  65. $this->public = 'public <br>';  
  66. $this->private = 'private <br>';  
  67. $this->protected = 'protected <br>';  
  68. }  
  69. protected function tank(){ //私有方法不能繼承,換成public,protected  
  70. if (!isset(self::$instance[get_class()]))  
  71. {  
  72. $c = get_class();  
  73. self::$instance = new $c;  
  74. }  
  75. return self::$instance;  
  76. }  
  77.  
  78. public function pub_function() {  
  79. echo "you request public function<br>";  
  80. echo $this->public;  
  81. }  
  82. protected function pro_function(){  
  83. echo "you request protected function<br>";  
  84. echo $this->protected;  
  85. }  
  86. private function pri_function(){  
  87. echo "you request private function<br>";  
  88. echo $this->private;  
  89. }  
  90. }  
  91.  
  92. class test1 extends test{  
  93.  
  94. public function __construct(){  
  95. parent::tank();  
  96. parent::__construct();  
  97. }  
  98. public function tank(){  
  99. echo $this->public;  
  100. echo $this->private//Notice: Undefined property: test1::$private  
  101. echo $this->protected;  
  102. $this->pub_function();  
  103. $this->pro_function();  
  104. $this->pri_function(); //Fatal error: Call to private method test::pri_function() from context 'test1'  
  105. }  
  106.  
  107. public function pro_extends_function(){  
  108. echo "you request extends_protected function<br>";  
  109. }  
  110. public function pri_extends_function(){  
  111. echo "you request extends_private function<br>";  
  112. }  
  113. }  
  114.  
  115. error_reporting(E_ALL);  
  116. $test = new test1();  
  117. $test -> tank(); //子類和父類有相同名字的屬性和方法,實例化子類時,子類的中的屬性和方法會蓋掉父類的.  
  118.  
  119. ?>  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本韩国在线不卡| 91九色综合久久| 国产欧美一区二区三区四区| 久久成人亚洲精品| 日韩在线中文字幕| 一区三区二区视频| 久久免费视频在线观看| 欧美极品美女电影一区| www.亚洲天堂| 深夜福利91大全| 久久中文字幕国产| 国产精品福利在线观看网址| 亚洲精品美女在线观看播放| 国产精品久久久久999| 日韩精品在线私人| 136fldh精品导航福利| 最近2019中文字幕一页二页| 亚洲天堂免费观看| 久久久精品一区| 亚洲精品在线视频| 亚洲国产精品人久久电影| 精品福利视频导航| 国产视频亚洲视频| 久久久久久亚洲精品中文字幕| 久久久久久国产精品| 亚洲国产另类久久精品| 国产精品专区h在线观看| 亚洲在线一区二区| 亚洲热线99精品视频| 亚洲精品资源美女情侣酒店| 麻豆乱码国产一区二区三区| 日韩成人在线网站| 欧美日韩国产丝袜另类| 亚洲国产99精品国自产| 久久久久久av| 国产精品美女主播| 久久亚洲精品一区| 中文字幕在线成人| 国产在线拍揄自揄视频不卡99| 国产成人精品优优av| 8x海外华人永久免费日韩内陆视频| 国产欧美最新羞羞视频在线观看| 97超级碰在线看视频免费在线看| 51视频国产精品一区二区| 在线精品高清中文字幕| 精品国产一区二区三区久久狼黑人| 欧美激情xxxx性bbbb| 久久精品欧美视频| 成人激情视频在线| 亚洲视频电影图片偷拍一区| 亚洲无限乱码一二三四麻| 青草成人免费视频| 色诱女教师一区二区三区| 精品夜色国产国偷在线| 日韩男女性生活视频| 欧美激情图片区| 亚洲桃花岛网站| 久久青草精品视频免费观看| 国产精品久久91| 国产精品www色诱视频| 国产视频丨精品|在线观看| 久久综合88中文色鬼| 尤物yw午夜国产精品视频| 久久香蕉精品香蕉| 中文字幕日韩专区| 青青草99啪国产免费| 国内精品模特av私拍在线观看| 亚洲一区二区三区毛片| 久久这里有精品| 亚洲人成毛片在线播放| 亚洲一区免费网站| 亚洲国产精品美女| 成人国内精品久久久久一区| 九九热这里只有精品免费看| 日韩中文在线不卡| 亚洲欧美国产日韩天堂区| 亚洲国产精品中文| 97香蕉超级碰碰久久免费软件| 91精品在线观看视频| 国产精品美女999| 久久精品国产清自在天天线| 国产欧美日韩精品专区| 亚洲自拍小视频| 亚洲男人的天堂网站| 亚洲国产精品视频在线观看| 国产成人精品在线| 国产精品中文字幕久久久| 九九热这里只有精品免费看| 国产精品亚洲第一区| 国产精品扒开腿做| 欧美亚洲另类激情另类| 国产成人精品一区| 日韩av免费看| 日韩精品日韩在线观看| 中文字幕精品久久久久| 视频直播国产精品| 亚洲男人天堂视频| 欧美国产日韩一区二区在线观看| 懂色aⅴ精品一区二区三区蜜月| 亚洲欧美日韩一区在线| 日本精品性网站在线观看| 久久精品国产欧美激情| 国产一区二区精品丝袜| 日韩经典中文字幕| 国产一区二区三区高清在线观看| 欧美三级欧美成人高清www| 国产91精品久久久| 亚洲精品之草原avav久久| 91美女片黄在线观| 亚洲一区二区三| 岛国av一区二区在线在线观看| 国产主播精品在线| 国产精品第一第二| 日韩美女中文字幕| 欧美激情xxxxx| 欧美疯狂xxxx大交乱88av| 国产视频久久网| 欧美午夜视频在线观看| 成人黄色av网站| 狠狠色狠狠色综合日日小说| 亚洲精品美女久久| 国产精品日韩欧美综合| 日韩美女中文字幕| 7777精品久久久久久| 欧美激情一级精品国产| 中文字幕日韩av综合精品| 久久精品国产69国产精品亚洲| 91人成网站www| 欧美激情一区二区三区久久久| 欧美色播在线播放| 91九色单男在线观看| 国产精品久久久久久久久久99| 亚洲人成在线一二| 日韩欧美在线网址| 国产精品久久久久久久久久ktv| 日韩视频亚洲视频| 亚洲黄一区二区| 亚洲r级在线观看| 中国人与牲禽动交精品| 黄色一区二区在线观看| 欧美—级a级欧美特级ar全黄| 欧美极品欧美精品欧美视频| 夜夜躁日日躁狠狠久久88av| 91精品国产高清| 色综合导航网站| xvideos亚洲| 亚洲国产精品成人av| 久久精品91久久香蕉加勒比| 日韩精品高清在线| 一区二区三区视频免费| 性欧美暴力猛交69hd| 欧美一区二粉嫩精品国产一线天| 国产一区二区动漫| 亚洲男人av电影| 精品无人区乱码1区2区3区在线| 久久综合伊人77777蜜臀| 国产精品99导航| 国产精品女主播视频| www.午夜精品| 国产亚洲欧美aaaa| 日韩av在线不卡| 成人在线播放av| 国产成人在线播放| 亚洲高清福利视频|