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隨無靜態變數但可以定義函數的屬性來冒充靜態變數
② thinkphp 如何想模板的JS代碼中傳遞數組
在後台代碼中將數組assign出去,然後在模板的js代碼中就可以通過{$array}調用啦。
如果我們在Action中賦值了一個name模板變數:
$name = 'ThinkPHP';
$this->assign('name',$name);
使用內置的模板引擎輸出變數,只需要在模版文件使用:
{$name}
模板編譯後的結果就是
<?php echo($name);?>
最後運行的時候就可以在標簽位置顯示ThinkPHP的輸出結果。
③ php鏁扮粍浼犻丣S鏂規硶閲岄潰鍘 濡備綍鍦↗S閲岄潰閬嶅巻榪欎釜PHP鏁扮粍錛
浠g爜濡備笅: = <?php $arr = array('鏁板' => '98', '璇鏂' => '103', '鑻辮' => '108'); foreach($arr as $k => $v) { $sql = ,SYFmap
④ PHP與JS對接的問題,有前端頁面(html的)和後端頁面(PHP的),JS怎麼獲取後台數組
這個當然是推薦ajax操作:
前端:
$.ajax({ url: "api.php", success: function(res){
for(var i in res){
$('#id').append(res[i])
}
}
});
後台 echo json_encode($array)