『壹』 php面向對象怎麼理解
跟你說個簡單的把!就以這個電腦為例!電腦本身是個抽象的!他只是我們給他定義的一個名字!那麼我們就可以說他是個類!當我們把電腦生產出來!也就是實例化後他就變成了一個對象!在PHP裡面就會給他分配空間!就好像我們能看到摸到一樣!
『貳』 php面向對象有什麼用
因為功能太多了,把實現一種功能的一系列相關函數和數據封裝成一個類,方便載入和使用。
例如gz壓縮、MySQL、驗證碼等類庫,需要用的時候才載入,一種對象就實現一種功能。
『叄』 php面向對象和面向過程的區別
面向過程就是分析出解決問題所需要的步驟,然後用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了。
面向對象是把構成問題事務分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。
例如五子棋,面向過程的設計思路就是首先分析問題的步驟:1、開始游戲,2、黑子先走,3、繪制畫面,4、判斷輸贏,5、輪到白子,6、繪制畫面,7、判斷輸贏,8、返回步驟2,9、輸出最後結果。把上面每個步驟用分別的函數來實現,問題就解決了。
而面向對象的設計則是從另外的思路來解決問題。整個五子棋可以分為 1、黑白雙方,這兩方的行為是一模一樣的,2、棋盤系統,負責繪制畫面,3、規則系統,負責判定諸如犯規、輸贏等。第一類對象(玩家對象)負責接受用戶輸入,並告知第二類對象(棋盤對象)棋子布局的變化,棋盤對象接收到了棋子的i變化就要負責在屏幕上面顯示出這種變化,同時利用第三類對象(規則系統)來對棋局進行判定。
可以明顯地看出,面向對象是以功能來劃分問題,而不是步驟。同樣是繪制棋局,這樣的行為在面向過程的設計中分散在了總多步驟中,很可能出現不同的繪製版本,因為通常設計人員會考慮到實際情況進行各種各樣的簡化。而面向對象的設計中,繪圖只可能在棋盤對象中出現,從而保證了繪圖的統一。
功能上的統一保證了面向對象設計的可擴展性。比如我要加入悔棋的功能,如果要改動面向過程的設計,那麼從輸入到判斷到顯示這一連串的步驟都要改動,甚至步驟之間的循序都要進行大規模調整。如果是面向對象的話,只用改動棋盤對象就行了,棋盤系統保存了黑白雙方的棋譜,簡單回溯就可以了,而顯示和規則判斷則不用顧及,同時整個對對象功能的調用順序都沒有變化,改動只是局部的。
再比如我要把這個五子棋游戲改為圍棋游戲,如果你是面向過程設計,那麼五子棋的規則就分布在了你的程序的每一個角落,要改動還不如重寫。但是如果你當初就是面向對象的設計,那麼你只用改動規則對象就可以了,五子棋和圍棋的區別不就是規則嗎?(當然棋盤大小好像也不一樣,但是你會覺得這是一個難題嗎?直接在棋盤對象中進行一番小改動就可以了。)而下棋的大致步驟從面向對象的角度來看沒有任何變化。
當然,要達到改動只是局部的需要設計的人有足夠的經驗,使用對象不能保證你的程序就是面向對象,初學者或者很蹩腳的程序員很可能以面向對象之虛而行面向過程之實,這樣設計出來的所謂面向對象的程序很難有良好的可移植性和可擴展性。
『肆』 php中的面向對象 -> 是什麼意思
->在php中表示取類的實例的某個屬性或方法
舉例說明:
classmyClass{
publicvar1='var1';
publicfunctionfunc1(){
}
}
$instance1=newmyClass();
$instance1->var1;//var1
$instance1->func1();//執行func1
->可以得到類的屬性或方法,與其他大多數面向對象語言中的「.」的作用相同
『伍』 PHP是面向對象好呢還是面向過程好呢
呵呵 犀利的轉了帖。。。面向對象,一定要面向對象,沒有對象就沒有老婆,沒有老婆就沒有小孩,沒有小孩就沒有未來……
你要不是為了未來,就不用找對象,
如果只是簡單的搞搞,可以找馬子……
把馬子/釣凱子,都是面向過程的,過程一結束,馬子就不存在了,就好像你每天早上總是一個人醒來……
另外馬子很難升級……
鑒於馬子的不可預計性,她的維護也很困難……
實際上最為重要的是,和馬子是沒有契約的,也就是你和馬子是不簽訂婚前契約的,你們的關系是沒有約束性的
這樣一個沒有約束性的/難以升級的/維護性很差的,就是面向過程,當然這種過程是很自由的,毋容置疑
老婆正好相反,是要簽訂契約的,在一定的契約框架下,她維護性是有據可依的,升級性是有理可論的,
顯然,通常她脾氣不太好,你經常出錯是會被罵得,她也不允許你有外遇,實際上你喪失了很多自由,自從有了老婆你就不得不考慮家庭開支/小孩成長/空氣污染/對方父母等,一系列頭痛的問題,再也沒有當年一人吃飽,全家不餓得魄力
不過,你們之間是一種長久的依賴,在一定的約束下,她會一直陪伴你
毫無疑問,把馬子是找對象必由之路,找對象的目的是為了討老婆,就像樓上說的,如果你的目的就是把馬子,找樂子,那就不需要面對對象,這是很自由的,雖然她的可塑性很差,但是你不會長期使用一個馬子……而如果要長相廝守,就需要找對象
另外也有一些情況,把馬子時間把長了,就把成對象了……這種能力因人而異……
『陸』 php面向對象的概念理解.
我覺得沒必要去深究他的意思。
按我的理解,面向對象編程,主要是將我們實際生活中的對象經過抽象,將它定義成為一個類,通過類的屬性和方法來模擬生活中的這個對象。這樣使得程序更容易結構化、抽象起來更方便。
面向對象技術最初是從面向對象的程序設計開始的,
面向對象編程並不困難
它的出現以60年代simula語言為標志。80年代中後期,面向對象程序設計逐漸成熟,被計算機界理解和接受,人們又開始進一步考慮面向對象的開發問題。這就是九十年代以microsoft
visual系列oop軟體的流行的背景。
傳統的結構化分析與設計開發方法是一個線性過程,因此,傳統的結構化分析與設計方法要求現實系統的業務管理規范,處理數據齊全,用戶能全面完整地其業務需求。
傳統的軟體結構和設計方法難以適應軟體生產自動化的要求,因為它以過程為中心進行功能組合,軟體的擴充和復用能力很差。
對象是對現實世界實體的模擬,因面能更容易地理解需求,即使用戶和分析者之間具有不同的教育背景和工作特點,也可很好地溝通。
區別面向對象的開發和傳統過程的開發的要素有:對象識別和抽象、封裝、多態性和繼承。
對象(object)是一個現實實體的抽象,由現實實體的過程或信息牲來定義。一個對象可被認為是一個把數據(屬性)和程序(方法)封裝在一起的實體,這個程序產生該對象的動作或對它接受到的外界信號的反應。這些對象操作有時稱為方法。對象是個動態的概念,其中的屬性反映了對象當前的狀態。
類(class)用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
由上分析不難看出,盡管oop技術更看中用戶的對象模型,但其目的都是以編程為目的的,而不是以用戶的信息為中心的,總想把用戶的信息納入到某個用戶不感興趣的「程序對象」中。
『柒』 PHP面向對象的應用
拋出異常要用
try{} throw{}
『捌』 PHP的面向對象究竟是什麼概念
這樣說吧,
在我們初步學習的面向過程程序設計方法,比如C語言中:
程序=演算法+數據結構;
但是面向對象程序設計方法,如C++,和後來的PHP等語言:
程序=(演算法+數據結構);
就是說演算法與數據結構組成一個整體,而這個整體就是類,把類詳細化了就是一個一個具體的對象。
比如定義一個類,再用類聲明一個對象:
class Student()
{....functions()
protected:
int a;
char b;
}
Student xiao;
Student就是一個類,xiao就是一個對象。
像樓主說的那樣,對象除了封裝方法(我們也可以稱之為演算法)之外,還可以有一些數據成員,比如上面的a,b,所以類封裝不只封裝了演算法,還有這些演算法之下的數據!
從某方面來說,面向對象是函數的升級,因為這類也是可以在主函數外定義的,這也可以將其看作是一種特殊的函數(個人看法啊),我們可以調用這「函數」中的數據和方法。所以樓主說的在廣義上也是成立的!
另外,建議樓主先閱讀下C++有關課程的關於面向對象的論述,可能會對你有所幫助!
『玖』 php如何實現面向對象
通過引入類這個概念 然後用方法來實現功能
<?php
header('Content-type:text/html;charset=utf-8');
//面向對象
classDog{
//屬性
private$name='旺財';
private$age=2;
private$voice='咕咕。。';
//方法
publicfunctionrunToMe(){
echo$this->age,'歲的',$this->name,'正在向我跑來,尾巴還一搖一搖的。<br/>';
}
publicfunctiondrinkWater(){
echo$this->name,'正在喝水,還不時的發出「',$this->voice,'」的聲音。';
}
}
//實例化
$dog=newDog();
//調用方法
$dog->runToMe();
$dog->drinkWater();
//輸出:2歲的旺財正在向我跑來,尾巴還一搖一搖的。旺財正在喝水,還不時的發出///「咕咕。。」的聲音。
?>
『拾』 PHP面向對象 ->的用法
$stmt 是個變數,具體是什麼類型的變數,要看你的$db->prepare 返回的是什麼類型的數據。也就是可以是對象變數也可以是其他類型的變數。
在PHP里,變數的數據類型是可變的,舉例來說,前面你賦值數字56,後面就可以賦值 text。
從代碼的字面理解,通常,以對象方式調用prepare 函數返回的是一個 Mixed 類型的數據。
上面的代碼中:
$stmt=$db->prepare($query);
$stmt=bind_param("sssd",$isbn,$author,$title,$price);
這兩句貌似與PHP手冊里有些區別,但因為也可能是自己寫的過程定義,你可參照看:
$stmt=$mysqli->prepare("(?,?,?,?)");
$stmt->bind_param('sssd',$code,$language,$official,$percent);//注意此句調用
$code='DEU';
$language='Bavarian';
$official="F";
$percent=11.2;
/*executepreparedstatement*/
$stmt->execute();
printf("%dRowinserted. ",$stmt->affected_rows);
/*closestatementandconnection*/
$stmt->close();