<?php
 if('nn'==0){
echo 'aa';
 }else{
echo 'bb';
 }
?>
大家觉得 会输出 aa 还是 bb? 为什么?

解决方案 »

  1.   

    aa.0 和所有非数值的比较都返回 true当做比较的时候 转换 nn 但是无法转换成数值 所以直接转换成0  那么条件就成立了
      

  2.   

    aa
    因为 'nn' 转换成数值的时候为 0为什么会觉得很多人都会错吧呢?
    大多数人都不会弄错
      

  3.   

    为什么 不会大部分错呢 
    xuzuning  你认为下面的js 最后输出的是什么?<script>
    if('nn'==0){
    alert(1);
    }else{
    alert(2);
    }
    </script>
      

  4.   

    对呀!所以
    if('nn'=='0'){
        echo 'aa';
     }else{
        echo 'bb';
     }
    是输出 bb 的呀
      

  5.   

    2
    有什么问题吗?
    在 js 中
    'nn' 是一个 string 对象
    0 是一个 number 对象
    所以 'nn'==0 不会成立
      

  6.   

    这个是输出bb没错  ,那你觉得 我上面的js 是输出什么呢
      

  7.   

    还有 比较的时候 是 字符转为数值而为什么不是数值转为字符呢 
    比如  <?php
     if(0=='n'){
        echo 'aa';
     }else{
        echo 'bb';
     }
    ?>这个为什么不是 0转为'0' 最后输出bb呢?
      

  8.   

    2
    有什么问题吗?
    在 js 中
    'nn' 是一个 string 对象
    0 是一个 number 对象
    所以 'nn'==0 不会成立

    照你的理论  那么这个<script>
    if('0'==0){
    alert(1);
    }else{
    alert(2);
    }
    </script>
    '0' 是一个 string 对象
    0 是一个 number 对象
    所以 '0'==0 不会成立
    可实际是相等