php與js有哪些區別
本文主要從型別轉換的不同、實形參的不同、資料型別的不同等方面介紹了php與js的區別,有需要的朋友可以參考一下!想了解更多相關資訊請持續關注我們應屆畢業生考試網!
1,型別轉換的不同
在javascript中
空物件和空陣列轉換為boolean值為true;
但在php中
空物件空陣列轉換為boolean值為false;
(僅在php4中空物件的boolean值為false)
包括非0的負數值,都是轉換為true;
2,實形參的不同
在js中形參和實參的.個數對比起來都沒有限制,形參個數可以大於實參,也可以少於實參
而在php中,實引數大於形參不報錯,但當實參個數少於形參個數時(並且未指定的形參未定義時就會報錯)
程式碼如下:
function mao(val1,val2,val3){
}
mao(aa,bb);
此時由於val3未指定實參,會報錯
但當val3初始化一個值時,不報錯
程式碼如下:
function mao(val1,val2,val3="123"){
}
mao(aa,bb);
js中可以寫一個三元表示式來給未賦值的形參給定一個初始值,不可以和php一樣在形參列表裡面賦值,
本質原因由於php不存在原型連,執行過程中沒有變數物件。
3.資料型別的不同
js中有undefined型別,php中無此型別,
因此當一個變數未賦予任何值時,js中此型別為undefined(使用未申明的變數會報錯),而在php中則為Null型別;
並且js中只有number型別,而在php中無此型別,取代的為int float型別;
4.字串的連線
js中使用加號 + +=
php中使用點號 ..=
5.控制語句的區別
else if與elseif在php中都支援,js只支援前者
6.大小寫問題
js嚴格區分大小寫
php中自定義函式名不區分大小寫。命名函式時不可使用已宣告的函式,或PHP內建的函式名稱。
7.變數的作用範圍
php在函式範圍之外所宣告的變數就是全域性變數。由於函式可以視為單獨的
程式片段,所以區域性變數會覆蓋全域性變數的能見度,因此在函式中並無
法直接呼叫使用全域性變數。函式中若要使用全域性變數時,必須要利用global關鍵字定義目標變數,以
告訴函式主體此變數為全域性。
js由於原型連的關係,可直接呼叫
8.靜態變數
PHP支援宣告函式變數為靜態的(static)
js隨無靜態變數但可以定義函式的屬性來冒充靜態變數