分享编程~
 
php变量给JavaScrip赋值0后if判断出现异常问题

在js中变量if判断和php有一些不同之处,php是弱语言,所以产生的差异需要注意。

在php中变量为0、'0'、''、null、false时判断为非则成立,js中'0'是一个字符串,如果php给js赋值时需要注意,如果php中为'0'或者为0时赋值到js中不需要单引号或者双引号,直接输出即可,或者用parseInt强制转换成整形,看示例:

如果php中'0'或者为 0 时赋值到js中

php代码:

<?php
    $v = '0';
?>

js代码:

<script type="text/javascript">
    var v = '<?php echo $v;?>'; // 这是错误的,直接是一个字符串了
    var v = <?php echo $v;?>;   // 正确写法
    if(v){
	alert('Y');
    }else{
	alert('N');
    }
</script> 

如果php中为null或者false时php输出是什么也没有的,所以js中会报错,如 var v = ;

如果必须通过后端给js赋值时在php中最好是赋值不同的标识来判断,示例:

php代码:

<?php 
    // $v 为 ''、0、'0'、null、false时
    $flag = 'Y';
    if(!$v){
        $flag = 'N';
    }
?>

js代码

<script type="text/javascript">
var v = '<?php echo $flag;?>';
if(v == 'Y'){
    alert('Y');
}else{
    alert('N');
}
</script> 


上一篇:H5页面监听浏览器关闭、刷新、跳转时提示之onbeforeunload和onunload事件下一篇:JavaScript中substring() 方法截取字符串详解
赞(0) 踩(0)
赏金
微 信
赏金
支付宝
您说多少就多少,您的支持是我最大的动力