本例是PHP和javascript交互的例子,php中的值赋给js变量中,前提是这个php变量必须有值才行,就算是假分支中。
比如php中的$flags在本例中为true,如果js中false语句写成:$title_1.innerHTML = \"<?php echo $title;?>\";就会出错,因为$title在php中被赋值为数组
尽管在php的flags==\"false\";$title是一个字符串,情况是$title是数组,而数组在字符串中也是不能直接显示的。
<?php
$string = \"天上and地下\";
$flags = \"\";
if(strpbrk($string,\"and\")!=false){
$title = explode(\"and\",$string);
$title_1 = $title[0];
$title_2 = $title[1];
$flags = \"true\";
}
else{
$title = $string;
$flags = \"false\";
}
?>
—>html
<html>
<head>
<meta http-equiv=Content-Type content=\"text/html;charset=utf-8\">
<title></title>
<script type=\"text/javascript\">
var display = function(){
var flags = \"<?php echo $flags; ?>\";
var $title_1 = document.getElementById(\"title_1\");
var $title_2 = document.getElementById(\"title_2\");
if(flags==\"true\"){
$title_1.innerHTML = \"<?php echo $title[0];?>\";
$title_2.innerHTML = \"<?php echo $title[1];?>\";
return;
}
if(flags==\"false\"){
$title_1.innerHTML = \"<?php echo $string;?>\";
//虽然这是一个假分支,照理这个$string可以替换成$title,但是虽然只是执行上边的真分支,但是编译的时候
//这个假分支也是必须编译的,所以echo $title是错误的,因为$title是数组,只能是$string;
}
}
</script>
</head>
<body onload=\"display()\">
<div id=\"title_1\"></div>
<div id=\"title_2\"></div>
</body>
</html>
本文地址:https://www.stayed.cn/item/8359
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我