詳細解讀PHP類的封裝_PHP教程

來源:互聯網
上載者:User

public:方法或者屬性在任何範圍都可以訪問到,而且這是預設的,如果沒有為一個屬性或方法指定存取修飾詞,它將是public。

protected:方法或者屬性只能從類或者繼承類的一個成員中訪問到。

private:方法或者屬性只能從類的一個成員中訪問到,而且無法從繼承類的成員中訪問到。經過private標記的方法或者屬性可以在繼承類中重新定義。每一個類只能看到它自己定義的私人方法。

這三個修飾符從作用範圍上來講應該像這樣從大到小排序:

public→protected→private之所以說是在作用範圍上是因為類跟我們之前的函數一樣,把一些屬性和方法進行了PHP類的封裝。這個封裝就決定了資料的“可見度”了,這樣我們在類的外面不能夠隨意修改所定義的屬性和方法而只能夠進行調用,這就是封裝的好處,同時也提高了安全性。為了說明這幾個修飾符的作用,請看如下代碼:

 
  1. < ?php
  2. class myClass{
  3. public $public="Public";
  4. protected $protected="Protected";
  5. private $private="Private";
  6. function say_Hello(){
  7. //我現在什麼也不做,等下再告訴你
  8. }
  9. }
  10. $obj=new myClass();
  11. echo $obj->public;
  12. //echo $obj->protected;
  13. //echo $obj->private;
  14. ?>
  15. < ?php
  16. class myClass{
  17. public $public="Public";
  18. protected $protected="Protected";
  19. private $private="Private";
  20. function say_Hello(){
  21. //我現在什麼也不做,等下再告訴你
  22. }
  23. }
  24. $obj=new myClass();
  25. echo $obj->public;
  26. //echo $obj->protected;
  27. //echo $obj->private;
  28. ?>

通過運行以上樣本我們得到一個“Public”,但當你把//echo $obj->private;的注釋去掉時,你會得到一下如下的錯誤:Fatal error: Cannot access protected property myClass::$protected in E:apachehtdocsexamplefile.php on line 13。

可以看到我們不能隨意去訪問類的屬性定義,也就是我們不能去修改PHP類的封裝中已經定義的一些操作,這就是可見度了。我們在“外面”是不知道這個類中到底有那些成員,因為這些成員對於其他的類可能是不可見的。

當然如果我們一定要訪問或者修改定義為“私人”的屬性時,也可以使用PHP所提供的系統方法:_get()和_set()。關於這個在以後再來瞭解,因為現在我對此也只是有個瞭解啦。


http://www.bkjia.com/PHPjc/446066.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/446066.htmlTechArticlepublic:方法或者屬性在任何範圍都可以訪問到,而且這是預設的,如果沒有為一個屬性或方法指定存取修飾詞,它將是public。 protected:方...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.