phpjs对象
① php页面如何添加Js
把JS代码写在<?PHP ?>的外面,例如下面的语句:
<?
echo'<script language="javaScript" type="text/javascript" src="../Js/Banner.js">';
echo'</script>'
?>
修改为:
<script language="JavaScript" type="text/javascript" src="../Js/Banner.js">
</script>
<?php
//接下来的PHP语句从这里开始
?>
② 一张图让我看懂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随无静态变量但可以定义函数的属性来冒充静态变量
③ php+js镐庝箞瀹炵幇铡嗗彶姹囩巼镆ヨ锛熸瘆濡傛渶杩戜竴链堬纴鎴栬呮渶杩戜竴骞达纻链夊厤璐规眹鐜囨帴鍙e悧锛
钖勫ぇ阈惰岄兘链夊巻鍙叉椂闂寸殑姹囩巼锛屾垒涓宸ュ叿瀹氭椂鍏堟妸涓婇溃镄勬眹鐜囩埇锲炴潵銆傜劧钖庝缭瀛桦埌链鍦般
链鍦板仛涓缃戦〉锛屾牴鎹涓瀹氭椂闂撮棿闅斿姞杞借繖涓链鍦扮粨鏋滐纴铹跺悗鍐嶉氲繃锲捐〃褰㈠纺锻堢幇銆
④ js鍜宲hp镄勫尯鍒鏄浠涔
js鍜宲hp镄勫尯鍒鏄锛1銆乸hp涓镄勬牳蹇冨姛鑳芥槸鐢ㄥ嚱鏁版柟寮忓疄鐜帮纴钥宩s鏄鐢ㄥ硅薄镄勬柟娉曞疄鐜帮绂2銆乯s涓鍙橀噺镄勪紶鍊间紶阃掑拰浼犲潃浼犻掓槸镙规嵁浼犻掔殑瀵硅薄镄勭被鍨嫔喅瀹氱殑锛岃宲hp涓镓链夌被鍨嬮兘鍙浠ヨ嚜鐢辨带鍒跺叾浼犲艰缮鏄浼犲潃銆
銆愮浉鍏冲︿範鎺ㄨ崘锛歱hp缂栫▼锛堣嗛戯级銆
js鍜宲hp镄勫尯鍒鏄锛
1銆佷袱钥呯殑镙稿绩锷熻兘涓崭竴镙凤细
php涓镄勬牳蹇冨姛鑳芥槸鐢ㄥ嚱鏁版柟寮忓疄鐜帮纴渚嫔傚彇寰椾竴涓瀛楃︿覆镄勯暱搴︼细$length = strlen(str)锛
钥宩s鏄鐢ㄥ硅薄镄勬柟娉曞疄鐜帮纴渚嫔傚彇寰椾竴涓瀛楃︿覆镄勯暱搴︼细var length = str.length銆
2銆佸彉閲忎紶鍊兼柟寮忎笉涓镙凤细
js涓锛屽彉閲忕殑浼犲间紶阃掑拰浼犲潃浼犻掓槸镙规嵁浼犻掔殑瀵硅薄镄勭被鍨嫔喅瀹氱殑锛屼笉鑳借嚜宸遍殢蹇冩带鍒讹绂
钥宲hp涓镓链夌被鍨嬮兘鍙浠ヨ嚜鐢辨带鍒跺叾浼犲艰缮鏄浼犲潃锛屽湪鍙橀噺鍓嶅姞涓&灏卞彲浠ュ彉鎴愪紶鍧鏂瑰纺锛屼笉锷&灏辨槸浼犲兼柟寮忋
銆愮浉鍏冲︿範鎺ㄨ崘锛歫s瑙嗛戞暀绋嬨
3銆佷袱钥呭熀链鐗圭偣涓崭竴镙凤细
php鏄涓绉嶉氱敤寮婧愯剼链璇瑷銆傝娉曞惛鏀朵简C璇瑷銆丣ava鍜孭erl镄勭壒镣癸纴鍒╀簬瀛︿範锛屼娇鐢ㄥ箍娉涳纴涓昏侀傜敤浜嶹eb寮鍙戦嗗烟銆
js鏄涓绉嶅睘浜庣绣缁灭殑鑴氭湰璇瑷锛屽凡缁忚骞挎硾鐢ㄤ簬Web搴旂敤寮鍙,甯哥敤𨱒ヤ负缃戦〉娣诲姞钖勫纺钖勬牱镄勫姩镐佸姛鑳斤纴涓虹敤鎴锋彁渚涙洿娴佺晠缇庤傜殑娴忚堟晥鏋溿傞氩父JavaScript鑴氭湰鏄阃氲繃宓屽叆鍦℉TML涓𨱒ュ疄鐜拌嚜韬镄勫姛鑳界殑銆
鐩稿叧瀛︿範鎺ㄨ崘锛氱紪绋嬭嗛
⑤ php如何接收js传来的json对象
你无法传json对象到服务端交互的,要传的只是一个字符串(Json),是个字符串!
你发的代码里是json的解析,没有多大意义,你在php页面这样调试
var_mp($_REQUEST);//输出所有数据,如果存在的话,你会看到那个参数是啥
另外,json格式,主要方便javascript解析的,而不是php擅长的内容,多数情况下,是PHP返回json数据给js.
php的数组操作函数有主要的两个json_encode()与json_decode();
从你的代码中,我不确定你用何种方式通信,ajax?
我看你用到了jQuery,那里面有个ajax,方式类似这样的:
$.ajax({
type:"post",//method;canbegetwithpostorrequest
url:"/mySever.php",//phpurl
error:function(){alert('Error');},
data:{
data1:name,
data2:age,
},
datatype:"json",//jsonback
timeout:5000,
success:function(msg)
{
//eval(msg);//parasehere
}
});
returnfalse;
}
⑥ js和php在同一个文件中相互获取值的问题
你好php是服务端脚本语言,js是浏览器端脚本语老漏言,除非使用滚慎ajax进行数据提交否则,一但服务端生成好页面传到浏览器端后就不再参与浏览器端的“运算”,所以你想在同一个页面中不重新进行请求就js和php相互获取值是不现实的。
另:
你的代码分析如下:
<script>
varlinka;
linka=window.location.href;
</script>
<?php
$ch[0]="<script>document.write(linka);</script>";
echo$ch[0]."<br/>";
<script>
到这步为止,php获得js的变量非常顺利
下面侍备烂接着
<script>
vark;
k="<?phpecho$ch[0];?>";
alert(k);
</script>
其实你的整个页面都是php的,执行
$ch[0]="<script>document.write(linka);</script>";
这一句的时候,php的$ch[0]仅仅只是被赋予了"<script>document.write(linka);</script>"这个字符串,js代码并没有运行.php也并没有获得js的变量!获得的只是字符串而已.