php oop是指物件導向編程,在物件導向的程式設計(OOP)中,物件是一個由資訊及對資訊進行處理的描述所組成的整體,是對現實世界的抽象。
本文操作環境:Windows7系統、PHP7.1版、DELL G3電腦
php oop 是什麼意思?
PHP 物件導向
在物件導向的程式設計(英文:Object-oriented programming,縮寫:OOP)中,物件是一個由資訊及資訊處理的描述所組成的整體,是現實世界的抽象。
在現實世界裡我們所面對的事情都是對象,如電腦、電視、腳踏車等。
物件的主要三個特性:
物件的行為:可以對 物件施加那些操作,開燈,關燈就是行為。
物件的形態:當施加那些方法是物件如何回應,顏色,尺寸,外型。
物件的表示:物件的表示就相當於身分證,具體區分在相同的行為與狀態下有什麼不同。
例如Animal(動物) 是一個抽象類,我們可以具體到一隻狗跟一隻羊,而狗跟羊就是具體的對象,他們有顏色屬性,可以寫,可以跑等行為狀態。
物件導向內容
類別 − 定義了一件事的抽象特徵。類別的定義包含了資料的形式以及資料的操作。
物件 − 是類別的實例。
成員變數 − 定義在類別內部的變數。該變數的值對外是不可見的,但是可以透過成員函數訪問,在類別被實例化為物件後,該變數即可成為物件的屬性。
成員函數 − 定義在類別的內部,可用來存取物件的資料。
繼承 − 繼承性是子類別自動共享父類別資料結構和方法的機制,這是類別之間的關係。在定義和實作一個類別的時候,可以在一個已經存在的類別的基礎之上來進行,把這個已經存在的類別所定義的內容當作自己的內容,並加入若干新的內容。
父類 − 一個類別被其他類繼承,可將該類稱為父類,或基類,或超類。
子類別 − 一個類別繼承其他類別稱為子類,也可稱為衍生類別。
多型態 − 多態性是指相同的函數或方法可作用於多種類型的物件上並獲得不同的結果。不同的對象,收到相同訊息可以產生不同的結果,這種現象稱為多態性。
重載− 簡單說,就是函數或方法有同樣的名稱,但是參數列表不相同的情形,這樣的同名不同參數的函數或方法之間,互相稱之為重載函數或方法。
抽象化 − 抽象性是指將具有一致的資料結構(屬性)和行為(操作)的物件抽象化成類別。一個類別就是這樣一種抽象,它反映了與應用相關的重要性質,而忽略其他一些無關內容。任何類別的劃分都是主觀的,但必須與具體的應用有關。
封裝 − 封裝是指將現實世界中存在的某個客體的屬性與行為綁定在一起,並放置在一個邏輯單元內。
建構子 − 主要用來在建立物件時初始化對象, 即為物件成員變數賦初始值,總是與new運算子一起使用在建立物件的語句中。
析構函式 − 析構函式(destructor) 與建構函式相反,當物件結束其生命週期時(例如物件所在的函式已調用完畢),系統會自動執行析構函式。析構函數往往用來做"清理善後" 的工作(例如在建立物件時用new開闢了一片記憶體空間,應在退出前在析構函數中用delete釋放)。
下圖中我們透過 Car 類別 創建了三個物件:Mercedes, Bmw, 和 Audi。
$mercedes = new Car (); $bmw = new Car (); $audi = new Car ();
PHP 類別定義
PHP 定義類別通常語法格式如下:
<?php class phpClass { var $var1; var $var2 = "constant string"; function myfunc ($arg1, $arg2) { [..] } [..] } ?>
解析如下:
#類別使用class 關鍵字後加上類別名稱定義。
類別名稱後的一對大括號({})內可以定義變數和方法。
類別的變數使用 var 來宣告, 變數也可以初始化值。
函數定義類似 PHP 函數的定義,但函數只能透過該類別及其實例化的物件存取。
實例
<?php class Site { /* 成员变量 */ var $url; var $title; /* 成员函数 */ function setUrl($par){ $this->url = $par; } function getUrl(){ echo $this->url . PHP_EOL; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title . PHP_EOL; } } ?>
變數 $this 代表自身的物件。
PHP_EOL 為換行符號。
PHP 中建立物件
類別建立後,我們可以使用new 運算子來實例化該類別的物件:
$runoob = new Site; $taobao = new Site; $google = new Site;
以上程式碼我們創建了三個對象,三個對象各自都是獨立的,接下來我們來看看如何存取成員方法與成員變數。
呼叫成員方法
在實例化物件後,我們可以使用該物件呼叫成員方法,該物件的成員方法只能操作該物件的成員變數:
// 调用成员函数,设置标题和URL $runoob->setTitle( "菜鸟教程" ); $taobao->setTitle( "淘宝" ); $google->setTitle( "Google 搜索" ); $runoob->setUrl( 'www.runoob.com' ); $taobao->setUrl( 'www.taobao.com' ); $google->setUrl( 'www.google.com' ); // 调用成员函数,获取标题和URL $runoob->getTitle(); $taobao->getTitle(); $google->getTitle(); $runoob->getUrl(); $taobao->getUrl(); $google->getUrl();
完整程式碼如下:
實例
url = $par; } function getUrl(){ echo $this->url . PHP_EOL; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title . PHP_EOL; } } $runoob = new Site; $taobao = new Site; $google = new Site; // 调用成员函数,设置标题和URL $runoob->setTitle( "菜鸟教程" ); $taobao->setTitle( "淘宝" ); $google->setTitle( "Google 搜索" ); $runoob->setUrl( 'www.runoob.com' ); $taobao->setUrl( 'www.taobao.com' ); $google->setUrl( 'www.google.com' ); // 调用成员函数,获取标题和URL $runoob->getTitle(); $taobao->getTitle(); $google->getTitle(); $runoob->getUrl(); $taobao->getUrl(); $google->getUrl(); ?>
執行上述程式碼,輸出結果為:
菜鸟教程 淘宝 Google 搜索 www.runoob.com www.taobao.com www.google.com
推荐学习:《PHP视频教程》
以上是php oop 是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!