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)