【发布时间】:2012-10-25 18:46:20
【问题描述】:
我想在 javascript 中检查一个 php 变量并相应地创建一个数组。
我试过了,但它不起作用:
<script language="Javascript" type="text/javascript">
var phpvar1_large = <?php echo $var1_large ?>;
var phpvar2_large = <?php echo $var2_large ?>;
var phpvar3_large = <?php echo $var3_large ?>;
var phpvar4_large = <?php echo $var4_large ?>;
if(!phpvar1_large){
var imgArray = new Array(
'<?=$main_img; ?>'
);
}else if(!phpvar2_large){
var imgArray = new Array(
'<?=$main_img; ?>',
'<?=$var1_large; ?>'
);
}else if(!phpvar3_large){
var imgArray = new Array(
'<?=$main_img; ?>',
'<?=$var1_large; ?>',
'<?=$var2_large; ?>',
'<?=$var3_large; ?>'
);
}else if(!phpvar4_large){
var imgArray = new Array(
'<?=$main_img; ?>',
'<?=$var1_large; ?>',
'<?=$var2_large; ?>',
'<?=$var3_large; ?>'
);
}else if(phpvar4_large){
var imgArray = new Array(
'<?=$main_img; ?>',
'<?=$var1_large; ?>',
'<?=$var2_large; ?>',
'<?=$var3_large; ?>',
'<?=$var4_large; ?>'
);
}
</script>
但是,如果我不使用 if 语句,则数组创建正确:
<script language="Javascript" type="text/javascript">
var imgArray = new Array(
'<?=$main_img; ?>',
'<?=$var1_large; ?>',
'<?=$var2_large; ?>',
'<?=$var3_large; ?>',
'<?=$var4_large; ?>'
);
</script>
非常感谢您的帮助!
【问题讨论】:
-
请发布生成的 HTML,而不是 PHP。
-
在这种情况下,switch case 在语义上更合适
-
@Asad,这里不适合使用 switch case。首先简单地处理一个适当的数组是要走的路。
-
你真的应该在服务器端处理这些情况
-
@Brad switch 构造是专门为需要根据单个变量的值执行一组不同的语句而设计的。它在语义上比使用多个 if/elseif 更合适。这与他是否应该使用适当的数组无关,我同意。
标签: php javascript if-statement