首頁  >  文章  >  後端開發  >  php類別的封裝是什麼意思? php類別的封裝的解析

php類別的封裝是什麼意思? php類別的封裝的解析

不言
不言原創
2018-07-26 16:51:082669瀏覽

在php中,php類別的封裝是屬於重要的內容也是屬於比較難以理解的部分,在學習php類別的封裝之前,我們需要去了解public、protected與private修飾符,所以,在接下來的內容中,讓我們具體來解析這部分的內容。

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

protected:方法或屬性只能從類別或繼承類別的一個成員中存取。

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

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

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

< ?php   
class myClass{   
public $public="Public";   
protected $protected="Protected";   
private $private="Private";   
function say_Hello(){   
//我现在什么也不做,等下再告诉你   
}   
}   
$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(){  
//我现在什么也不做,等下再告诉你  
}  
}  
$obj=new myClass();  
echo $obj->public;  
//echo $obj->protected;  
//echo $obj->private;  
?>

透過運行以上範例我們得到一個“Public”,但當你把//echo $obj->private;的註解去掉時,你會得到如下的錯誤:Fatal error: Cannot access protected property myClass::$protected in E:\apache\htdocs\example\file.php on line 13。

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

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

相關文章推薦:

PHP封裝的HttpClient類別用法實例,封裝httpclient

PHP類別的封裝與繼承詳解,php封裝詳解

相關影片推薦:

以PHP物件導向思想實作對各個類別進行封裝處理

###########################################################################################################################

以上是php類別的封裝是什麼意思? php類別的封裝的解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn