PHP面向物件程式設計的方法,結合例項形式分析了PHP面向物件程式設計中類的宣告與例項化及類中方法的呼叫技巧,需要的朋友可以參考下。
在對超大型專案的開發過程中,如果使用面向過程地開發,程式碼量是非常的'龐大,這將大量的用到判斷和迴圈巢狀,和很多很相似的程式碼,不僅使專案程式碼量更加的龐大,還不利於開發,重用及維護。
面向物件就能很好的解決這個問題,面向物件很好的封裝性,節省了很多精力,不用關心物件內部的運作,只要關心物件與物件之間的互動,便於維護,而繼承性使得程式碼大量地精簡。
我們先來看一個題目:
例:張三是一位普通人,別人早晨向他打招呼,他會說“早上好”,但是有一天他被車撞了,腦子受了一點傷,因此,別人早晨向他打招呼時,他有時會說:“早上好”,但有時會說:“晚上好”,甚至辱罵對方。
分析:因為現在要面向物件,那我們先把物件拿出來
物件1:張三(人) 智商(名稱是屬性) 打招呼(動詞是方法)
物件2:車子 撞人(動詞是方法) <?php
//建立一個human類,類是物件的例項(工廠裡的模子)
class human{
//普通人的iq為100
public $iq = 100;
//打招呼,早上看到人就早上好
public function greet(){
echo '早上好';
}
}
//例項化一個物件李四
$lisi = new human();
$lisi->greet();
//返回早上好
?>
這個是例項化一個正常的李四
下面來看被車子撞了的李四
<?php
//建立一個human類,類是物件的例項(工廠裡的模子)
class human{
//普通人的iq為100
public $iq = 100;
//打招呼,早上看到人就早上好
public function greet(){
//當智商大於等於100
if($this->iq>=100){
echo '早上好','<br />';
}else{
//當智商小於100,隨機出現以下問候
$regard = array('早上好','晚上好','混蛋');
echo $regard[rand(0,2)],'<br />';
}
}
}
//例項化一個物件李四
$lisi = new human();
$lisi->greet();
//返回早上好
class car{
public function hit($people){
//撞了以後人的智商隨機出現了變化
$people->iq=rand(40,120);
}
}
//例項化一輛寶馬車子
$baoma = new car();
//寶馬車子撞人了
$baoma->hit($lisi);
//撞人之後人的智商
echo $lisi->iq,'<br />';
//人的根據智商的多少,問候也不相同
$lisi->greet();
?>