「PHP」PHP面向對象編程——phpOOP入門
PHP從入門到精通
之PHP的面相對象編程
面向對象編程(Object Oriented Programming, OOP, 面向對象程序設計)是一種計算機編程架構,OOP的一條基本原則是計算機程序是由單個能夠起到子程序作用的單元或對象組合而成。為了實現整體運算,每個對象都能夠接收信息、處理數據和向其它對象發送信息。面向對象一直是軟體開發領域內比較熱門的話 題,為編程人員敞開了一扇大門,使其編程的代碼 更簡潔、更易於維護,並且具有更強的可重用性。有人說PHP不是一個真正的面向對象的語言,這是事實。PHP 是一個混合型語言,你可以使用OOP,也可以使用傳統的過程化編程。然而,對於大型項目,你可能需要在PHP 中使用純的OOP去聲明類,而且在你的項目里只用對象和類。
首先我們來了解一些面向對象編程的基礎知識:
面向過程和面向對象
1、面向過程:專註於解決一個問題的過程。面向過程的最大特點,是由一個個的函數去解決處理這個問題的一系列過程;
2、面向對象:專註於由哪個對象來處理一個問題。面向對象的最大特點,是由一個個具有屬性和方法的功能的類,從類中拿對象,進而處理問題;
面向對象:
1、什麼是類?
具有相同屬性(特徵)和方法(行為)的一系列個體的集合。類是一個抽象的概念。
2、什麼是對象?
從類中拿到的具有具體屬性的個體,稱為對象。對象是一個具體的個體。
3、類和對象的關係?
類是對象的抽象化,對象是類的具體化。
類僅僅表明這類對象有哪些屬性。但是不能有具體的值,所以類是抽象的。
而對象,是將類所有屬性賦值後,產生具體的個體,所以對象是具體的。
類的聲明與實例化
1、如何聲明一個類?
class 類名{
訪問修飾符 $屬性;
[訪問修飾符] function 方法{};
}
2、聲明一個類的注意事項?
①類名只能有字母數字下劃線組成,開頭不能是數字,必須符合大駝峰法則;
②類名必須使用class修飾,類名後面一定不能有;
③屬性必須帶訪問修飾符;方法可以不帶訪問修飾符;
3、實例化對象及對象屬性方法的調用:
$對象名=new 類名;//可帶可不帶;
類外部調用屬性和方法:
$對象名->屬性名;//使用->調用屬性時,屬性名不能帶$符號!!
類內部調用屬性和方法:
$this->屬性名;
聲明類的代碼示例:
class Person{
var $name;
function Person($name){
$this->name=$name;
}
}
類中常見的修飾符
常見的訪問修飾符有:public、protected、private、var等。
用法如下:
class Person{
public $name;
public function Person($name){
$this->name=$name;
}
}
構造函數
1、什麼是構造函數?
構造函數是類中的一個特殊函數,當我們使用new關鍵字實例化對象時,相當於調用了類的構造函數;
2、構造函數有什麼作用?
實例化對象時,自動調用,用於給對象的屬性賦初值;
3、構造函數的寫法?
①構造函數名必須與類同名:
[public]function Person{
$this->name=$name
}
②使用魔術方法
4、構造函數注意事項?
①第一種寫法,構造函數名,必須與類同名!!!
②如果一個類沒有手寫構造函數,則系統默認會有一個空參構造,因此可以使用new Person;
如果我們寫進了帶參數的構造函數,則將不再有空參構造,也就是不能直接使用new Person;
Person後面的中的參數列表,必須符合構造函數的要求!!(即為形參實參問題);
③如果兩種構造函數同時存在,將使用魔術方法__construct。
5、析構函數:__destruct:
①析構函數在對象被銷毀釋放之前自動調用;
②析構函數不能帶有任何參數;
③析構函數常用於對象使用完以後,釋放資源,關閉資源等;
6、什麼是魔術方法?
PHP中給我們提供了一系列__開頭的函數,這些函數無需手動調用,會在合適的時機自動調用,這類函數稱為魔術函數(方法);
例如:
function __construct{}// 在類new一個對象時自動調用;
function __destruct{}// 在對象被銷毀時時自動調用;
因此,為避免重複,我們要求,除了魔術方法之外,自定義函數與方法不能__開頭;
最後,一般對於功能比較複雜的類,我們會單獨的寫到一個類文件中。
類文件的命名,統一小寫,使用"類名.class.php"的方式命名。
在其他文件中使用這個類時,使用include導入這個.class.php文件。
代碼如下:
name=$name;
}*/
//魔術方法(此為官方推薦用法)
function __construct($name){
$this->name=$name;
}
public function say{
echo "我叫".$this->name."!";
}
function __destruct{
echo "Ah! 張三 is die!";
}
}
include "person.class.php";
$zhangsan=new Person("zhangsan");
$zhangsan->say;
關於PHP面向對象編程的基礎知識就就到這裡,想學習更多的PHPOOP知識,歡迎關注我的技術博客,我們下期再見。覺得內容不錯的小夥伴請點推薦,歡迎大家在評論下方評論區與博主互動,謝謝大家!
未完,待續。。。
更多精彩內容,敬請關注 Q的前端世界的技術博客,內容持續更新。
※將git版本號編譯進程序
※webgl自學筆記——幾何圖形
※「LeetCode」Wildcard Matching 題解
※監聽剪貼板更新
TAG:達人科技 |
※Web Pages 編程 PHP
※ASP.NET Web Forms編程HTML 頁面
※ASP編程的 ADO
※ASP.NET Web Forms 編程HTML 表單
※JSONP 編程
※SOAP的編程
※HTTP 的編程
※XQuery編程 FLWOR + HTML
※ASP.NET Web Forms 編程
※ASP.NET編程
※Python中的IO編程
※TIOBE 4 月編程語言排行榜:Python 讓位,老將 C+奪回前三,PHP 慘遭拋棄!
※XPath 編程
※XSL-FO 編程
※TIOBE 2 月編程語言排行榜:Python 逼近 C,Groovy 重回 TOP20
※WSDL編程 UDDI
※WebPages編程C和VB實例
※使用 VS Code 進行 Python 編程
※TIOBE 7 月編程語言排行榜:C#被VB.NET 反超,Objective-C 重回前十
※AR機器人MekaMon將支持新編程平台Reach EDU