新聞中心
PHP類的封裝對(duì)于初學(xué)者來(lái)說(shuō)是比較難懂的,在我們學(xué)習(xí)這方面的知識(shí)之前,首先要講到的是PHP中的public、protected與private修飾符,可能在之前的代碼中你已經(jīng)見識(shí)過(guò)public這個(gè)修飾符,但是我們還并不懂這其中的奧秘,在接下來(lái)讓我們看看吧。#t#

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括烏爾禾網(wǎng)站建設(shè)、烏爾禾網(wǎng)站制作、烏爾禾網(wǎng)頁(yè)制作以及烏爾禾網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,烏爾禾網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到烏爾禾省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
public:方法或者屬性在任何作用域都可以訪問(wèn)到,而且這是默認(rèn)的,如果沒有為一個(gè)屬性或方法指定訪問(wèn)修飾符,它將是public。
protected:方法或者屬性只能從類或者繼承類的一個(gè)成員中訪問(wèn)到。
private:方法或者屬性只能從類的一個(gè)成員中訪問(wèn)到,而且無(wú)法從繼承類的成員中訪問(wèn)到。經(jīng)過(guò)private標(biāo)記的方法或者屬性可以在繼承類中重新定義。每一個(gè)類只能看到它自己定義的私有方法。
這三個(gè)修飾符從作用范圍上來(lái)講應(yīng)該像這樣從大到小排序:
public→protected→private之所以說(shuō)是在作用范圍上是因?yàn)轭惛覀冎暗暮瘮?shù)一樣,把一些屬性和方法進(jìn)行了PHP類的封裝。這個(gè)封裝就決定了數(shù)據(jù)的“可見性”了,這樣我們?cè)陬惖耐饷娌荒軌螂S意修改所定義的屬性和方法而只能夠進(jìn)行調(diào)用,這就是封裝的好處,同時(shí)也提高了安全性。為了說(shuō)明這幾個(gè)修飾符的作用,請(qǐng)看如下代碼:
- < ?php
- class myClass{
- public $public="Public";
- protected $protected="Protected";
- private $private="Private";
- function say_Hello(){
- //我現(xiàn)在什么也不做,等下再告訴你
- }
- }
- $obj=new myClass();
- echo $obj->public;
- //echo $obj->protected;
- //echo $obj->private;
- ?>
- < ?php
- class myClass{
- public $public="Public";
- protected $protected="Protected";
- private $private="Private";
- function say_Hello(){
- //我現(xiàn)在什么也不做,等下再告訴你
- }
- }
- $obj=new myClass();
- echo $obj->public;
- //echo $obj->protected;
- //echo $obj->private;
- ?>
通過(guò)運(yùn)行以上示例我們得到一個(gè)“Public”,但當(dāng)你把//echo $obj->private;的注釋去掉時(shí),你會(huì)得到一下如下的錯(cuò)誤:Fatal error: Cannot access protected property myClass::$protected in E:\apache\htdocs\example\file.php on line 13。
可以看到我們不能隨意去訪問(wèn)類的屬性定義,也就是我們不能去修改PHP類的封裝中已經(jīng)定義的一些操作,這就是可見性了。我們?cè)凇巴饷妗笔遣恢肋@個(gè)類中到底有那些成員,因?yàn)檫@些成員對(duì)于其他的類可能是不可見的。
當(dāng)然如果我們一定要訪問(wèn)或者修改定義為“私有”的屬性時(shí),也可以使用PHP所提供的系統(tǒng)方法:_get()和_set()。關(guān)于這個(gè)在以后再來(lái)了解,因?yàn)楝F(xiàn)在我對(duì)此也只是有個(gè)了解啦。
本文標(biāo)題:詳細(xì)解讀PHP類的封裝
標(biāo)題鏈接:http://fisionsoft.com.cn/article/coejpee.html


咨詢
建站咨詢
