自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳細解讀PHP類的封裝

開發(fā) 后端
我們在這篇文章中主要為大家介紹了PHP類的封裝的相關(guān)知識。希望新手們通過本文介紹的內(nèi)容能夠加深對PHP語言的理解程度。

PHP類的封裝對于初學者來說是比較難懂的,在我們學習這方面的知識之前,首先要講到的是PHP中的public、protected與private修飾符,可能在之前的代碼中你已經(jīng)見識過public這個修飾符,但是我們還并不懂這其中的奧秘,在接下來讓我們看看吧。#t#

public:方法或者屬性在任何作用域都可以訪問到,而且這是默認的,如果沒有為一個屬性或方法指定訪問修飾符,它將是public。

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

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

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

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

 

  1. < ?php   
  2. class myClass{   
  3. public $public="Public";   
  4. protected $protected="Protected";   
  5. private $private="Private";   
  6. function say_Hello(){   
  7. //我現(xiàn)在什么也不做,等下再告訴你   
  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. //我現(xiàn)在什么也不做,等下再告訴你  
  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:\apache\htdocs\example\file.php on line 13。

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

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

責任編輯:曹凱 來源: helpphp.cn
相關(guān)推薦

2009-12-11 18:05:39

PHP鏈接WEB SE

2009-12-01 19:28:16

PHP模板

2009-12-01 17:25:16

PHP $_FILES

2009-12-02 16:31:54

PHP發(fā)送郵件

2009-12-10 09:48:26

PHP獲取遠程圖片

2009-12-08 10:00:36

PHP比較運算符

2009-12-08 16:48:25

PHP類phpExce

2009-12-11 15:35:50

PHP彈出對話框

2009-12-08 14:11:03

PHP時區(qū)修改

2009-12-02 10:49:59

PHP解析XML元素結(jié)

2009-12-02 14:55:46

PHP抽象類abstr

2009-12-11 14:39:41

PHP函數(shù)mysql_

2009-12-11 16:28:20

PHP統(tǒng)計圖表類

2009-12-04 15:28:36

PHP JSON類庫

2022-08-26 07:33:49

內(nèi)存JVMEntry

2024-07-29 00:01:00

2010-05-12 10:35:19

路由交換

2012-03-31 10:59:02

ASP.NET

2012-07-02 14:39:59

架構(gòu)敏捷

2010-01-07 13:17:35

JSON變量
點贊
收藏

51CTO技術(shù)棧公眾號