面向對象(PHP學習)

在對超大型項目的開發過程當中,若是使用面向過程地開發,代碼量是很是的龐大,這將大量的用到判斷和循環嵌套,php

和不少很類似的代碼,不只使項目代碼量更加的龐大,還不利於開發,重用及維護。this

面向對象就能很好的解決這個問題,面向對象很好的封裝性,節省了不少精力,不用關心對象內部的運做,只要關心對象

對象與對象之間的交互,便於維護,而繼承性使得代碼大量地精簡。blog

咱們先來看一個題目:繼承

:張三是一位普通人,別人早晨向他打招呼,他會說「早上好」,可是有一天他被車撞了,腦子受了一點傷,開發

所以,別人早晨向他打招呼時,他有時會說:「早上好」,但有時會說:「晚上好」,甚至辱罵對方。it

分析:由於如今要面向對象,那咱們先把對象拿出來io

   對象1:張三(人)   智商(名稱是屬性)   打招呼(動詞是方法)function

   對象2:車子  撞人(動詞是方法)class

 

<?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();

?>
相關文章
相關標籤/搜索