導航:首頁 > 編程語言 > php對象的比較

php對象的比較

發布時間:2024-06-12 08:16:44

php面向對象中public與var的區別

public是定義property(屬性)和method(方法)的可見性的關鍵字,用public修飾的屬性和方法在類的內部和外部都可以訪問。var是定義變數的。用var定義的變數如果沒有加protected 或 private則默認為public。在php4中類中用var定義的變數必須在定義時或在類的構造函數中進行初始化。

㈡ php面向對象和面向過程的區別

面向過程就是分析出解決問題所需要的步驟,然後用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了。

面向對象是把構成問題事務分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。

例如五子棋,面向過程的設計思路就是首先分析問題的步驟:1、開始游戲,2、黑子先走,3、繪制畫面,4、判斷輸贏,5、輪到白子,6、繪制畫面,7、判斷輸贏,8、返回步驟2,9、輸出最後結果。把上面每個步驟用分別的函數來實現,問題就解決了。

而面向對象的設計則是從另外的思路來解決問題。整個五子棋可以分為 1、黑白雙方,這兩方的行為是一模一樣的,2、棋盤系統,負責繪制畫面,3、規則系統,負責判定諸如犯規、輸贏等。第一類對象(玩家對象)負責接受用戶輸入,並告知第二類對象(棋盤對象)棋子布局的變化,棋盤對象接收到了棋子的i變化就要負責在屏幕上面顯示出這種變化,同時利用第三類對象(規則系統)來對棋局進行判定。

可以明顯地看出,面向對象是以功能來劃分問題,而不是步驟。同樣是繪制棋局,這樣的行為在面向過程的設計中分散在了總多步驟中,很可能出現不同的繪製版本,因為通常設計人員會考慮到實際情況進行各種各樣的簡化。而面向對象的設計中,繪圖只可能在棋盤對象中出現,從而保證了繪圖的統一。

功能上的統一保證了面向對象設計的可擴展性。比如我要加入悔棋的功能,如果要改動面向過程的設計,那麼從輸入到判斷到顯示這一連串的步驟都要改動,甚至步驟之間的循序都要進行大規模調整。如果是面向對象的話,只用改動棋盤對象就行了,棋盤系統保存了黑白雙方的棋譜,簡單回溯就可以了,而顯示和規則判斷則不用顧及,同時整個對對象功能的調用順序都沒有變化,改動只是局部的。

再比如我要把這個五子棋游戲改為圍棋游戲,如果你是面向過程設計,那麼五子棋的規則就分布在了你的程序的每一個角落,要改動還不如重寫。但是如果你當初就是面向對象的設計,那麼你只用改動規則對象就可以了,五子棋和圍棋的區別不就是規則嗎?(當然棋盤大小好像也不一樣,但是你會覺得這是一個難題嗎?直接在棋盤對象中進行一番小改動就可以了。)而下棋的大致步驟從面向對象的角度來看沒有任何變化。

當然,要達到改動只是局部的需要設計的人有足夠的經驗,使用對象不能保證你的程序就是面向對象,初學者或者很蹩腳的程序員很可能以面向對象之虛而行面向過程之實,這樣設計出來的所謂面向對象的程序很難有良好的可移植性和可擴展性。

㈢ php中strcmp函數是如何進行比較的

php中strcmp簡介:
strcmp() 函數比較兩個字元串。
注釋:strcmp() 函數是二進制安全的,且對大小寫敏感。
比較實例:
<!DOCTYPE html> <html> <body>
<?php echo strcmp("Hello world!","Hello world!")."<br>"; // 兩字元串相等 echo strcmp("Hello world!","Hello")."<br>"; // string1 大於 string2
echo strcmp("Hello world!","Hello world! Hello!")."<br>"; // string1 小於 string2 ?>
</body>
</html>
運行結果:
0
7
-7

㈣ 請問PHP中的面向對象,java面向對象一樣嗎。如果不一樣,有什麼區別(有好的回答的的話回加分的)

沒有哪2種語言的面對對象做法是完全一樣。所以回答是「不一樣」。
由於各自語言的特性,細節區別非常多,不可勝訴。
總體上,php在設計對象模型式參考了java的設計,但改成適應php自身的形式。
php沒有java的自動化class loader,在類的讀取和對象創建上就要注意先後。php的自動讀取要手動設置。
php由於自身是動態類型語言,變數本身的類型動態,就沒有java的重載功能。這也導致類設計上的一些很大區別。
php的動態特性和具有自我反射能力,可以把方法名稱當成「消息」發送,在運行時判斷對象是否能接收消息,java的靜態就不能直接應用這樣的設計。
php6.x之前估計不會類似java的有名字空間或包管理機制。
php的對象可以動態地後添加屬性增減數據,java是禁止這樣做的。
php的方法名稱還不區分大小寫。
php的動態特性也就不需要模板泛型編程的特性。在java中泛型也占很重要的一部分。
等等等等
相同點,都具有final,抽象類,介面,變數可見度等語法。
總之,這些不同都是由語言特性和適用場合決定的

㈤ PHP中數據類型 array和object有什麼區別

具體的概念區別你可以查看php幫助手冊,我說下個人的理解:
通常來說,array是數組,而object是對象,兩者有很大的區別,最主要的區別我覺得對象一般要定義行為,其目的是為了封裝,而數組主要定義數據結構。
但這兩種在php語言里區別比較模糊,因為php是支持范數據類型,所以array可以是object,反之亦然。

㈥ 用PHP寫函數,比較a,b,c三個數,輸出其中最大的一個

echo max(1, 3, 5, 6, 7); // 7
echo max(array(2, 4, 5)); // 5

-------
abc 是字元串,沒辦法比較大小的,如果應要比較也只能把數值給變數,例:
$a=10;
$b=20;
$c=30;
echo max($a,$b,$c); //說白了 這比較的還是10,20,30。

㈦ 在PHP中,比較表達式返回值為true或false對不對

(1)對於字元串變數來說,equal比較的兩邊對象的內容,所以內容相同返回的是true。
至於你沒問到的「==」,比較的是內存中的首地址,所以如果不是同一個對象,「==」不會返回true 而是false。
舉個簡單的例子,
String s1="abc", s2="abc";
String s3 =new String("abc");
String s4=new String("abc");
s1==s2 //true,
s1.equals(s2) //true,
s3.equals(s3) //true,equal比較的是內容
s3==s4//false,==比較的是首地址,所以是false
大概就是這樣的了如果還不懂就去後盾人那自學吧,我聽說他們最近在搞什麼實訓班培訓的活動學費九折還包住宿我正准備去一起?

㈧ php中比較兩個數大小的內置函數是什麼

函數描述:mixed max(mixed arg1, mixed arg2, …,mixed argn);
返回值:返回此數組中的最大值,若參數中有浮點數,則所有參數轉化成浮點數,
返回值也為浮點數;否則所有參數轉化成整數,返回值為整數。

函數描述:mixed min(mixed arg1, mixed arg2, …,mixed argn);
返回值:返回此數組中的最小值,若參數中有浮點數,則所有參數轉化成浮點數,
返回值也為浮點數;否則所有參數轉化成整數,返回值為整數。

閱讀全文

與php對象的比較相關的資料

熱點內容
安卓手機拍攝慢動作怎麼設置 瀏覽:480
中國程序員加油 瀏覽:172
python去哪個城市比較多 瀏覽:759
閃迪u盤加密初始密碼 瀏覽:773
房屋辦理解壓需要契稅和發票嗎 瀏覽:888
麗江易學java高級程序員 瀏覽:661
程序員木蘭教程 瀏覽:665
pythontkinter按鈕 瀏覽:439
如何快捷錄音安卓 瀏覽:7
sd播放音樂需要哪些文件夾 瀏覽:839
華為平板m3怎麼升級到安卓11 瀏覽:532
聯通app排隊號怎麼看 瀏覽:647
怎麼不越獄安裝app 瀏覽:183
python怎麼用鏈表 瀏覽:851
8k程序員面試題 瀏覽:541
貴州交警app怎麼下載 瀏覽:414
解壓縮安裝包怎麼安裝 瀏覽:44
壓縮機系統與裝置 瀏覽:677
上海大眾app怎麼查保養記錄 瀏覽:464
抖音網紅一手資源解壓密碼 瀏覽:543