本文目錄一覽:
php中面向對象編程是什麼意思,到底用在什麼地方,用一個項目中的實際例子來舉例說明
可以這樣理解,
1、類是模具,對象是模具生成的產品,就是印刷術一樣,有了一個字一個字的模子,要印出一個字來就方便了,想印就印,你可以印,我也可以印。
2、在PHP中怎麼做一個模具出來呢,就用 class申明,它就表示你要造一個模具了,但這個模具是做什麼用的,就要在裡面添加函數來表達了,函數名就是這個類的方法名,函數完成的功能就是類的方法。當然函數要實現功能代碼中肯定要用到變數,這個就是所謂的類的成員以或者說成是類的屬性。
3、有了類的屬性有了類的方法,這就完成了一個類的定義,也就是模具做好了,接下來要理解的就是,怎樣去用這個類了。就好像是要看一本書你不可能到印刷廠去把字的模具拿來拼成一頁一頁書來看吧,肯定是在紙上印刷出來。這個印刷的過程就是對象生成的過程也叫類的實例化。PHP中用new關鍵字來生成對象。比如前面定義的類名為 牛,這個牛有一個方法(函數)是:耕地。當然耕地這個函數,要怎樣去實現那是另外要的事情了。現在要說的是怎麼用牛的耕地方法,首先實例化,在PHP中這樣表示:牛1= new 牛。這樣 牛這個類 就有了一個具體可以使喚的牛1了 要想用牛1的耕地方法,意思就是「調用類(對象)的方法」,PHP中這樣表示,牛1-耕地;如果你想要100頭牛,就new100個出來就行,而不用每當要用牛的時候都去寫牛的代碼和牛耕地的代碼了。
4、上面說的是一個理解過程,要實現就要用到具體的PHP的語法了,比如怎樣申明變數 ,怎樣賦值,怎樣用運算符來運算,怎樣寫循環結構,怎樣寫選擇結構,等等 。
PHP真的能算是面向對象的語言嗎?
面向對象三大特性:封裝,繼承,多態
php可以封裝對象,也可以繼承,同樣可以實現多態
多態是指指出重寫和重載,php子類可以重寫父類的方法,也可以通過方法的參數數量不同來重載方法,我覺得是面向對象語言
php面向對象有什麼用
php程序編寫分總分兩種方式,分別為面向過程和面向對象,用兩者比較你會更容易理解些
以下資料庫操作為例:
面向過程:
$conn = mysql_connect(‘127.0.0.1’, ‘root’, ‘123456’) or die(‘連接不成功!’);
mysql_select_db(‘test’, $conn) or die(‘資料庫不存在!’);
$queryid = mysql_query(“select * from sort”);
while ($rs = mysql_fetch_assoc($queryid)) {
echo $rs[‘name’], ‘br’;
}
過程的代碼給人感覺比較亂,不易管理,以下實現以上代碼一樣的功能,但代碼清楚多了。
面向對象就是把常用的功能封裝為一個類,類由屬性和方法組成:
把以上過程代碼封裝成類,以文件形式保存為db.php
class db {
private $conn; //屬性
private $queryid; //屬性
//構造函數
public function db($host, $dbuser, $dbpasswd, $dbname) {
$this-conn = mysql_connect($host, $dbuser, $dbpasswd) or die(‘連接不成功!’);
mysql_select_db($dbname, $this-conn) or die(‘資料庫不存在!’);
}
//查詢方法
public function query($sql) {
$this-queryid = mysql_query($sql, $this-conn);
}
public function fetch_assoc() {
return mysql_fetch_assoc($this-queryid);
}
}
//在a.php文件中實例化,代碼使用變得簡結和容易理解,代碼的重用性
inclode(‘db.php’);
$db = new db(‘127.0.0.1’, ‘root’, ‘123456’, ‘test’);
$db-query(“select * from sort”);
while ($rs = $db-fetch_assoc()) {
echo $rs[‘name’], ‘br’;
}
原創文章,作者:TAGN,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/146456.html