<?
  $aa = NULL;
  if ("" === $aa) 
  {  echo "true"; }
  else 
   echo "false" ;
?>
结果false

解决方案 »

  1.   

    对,转换成string类型~
    在asp也有这种做法.
    "" & str
      

  2.   

    PHP的数据类型不严格,写法都可以,还可以这样 $str1 = "$str2"
      

  3.   

    嗯,应该是为了保证数据类型为STRING的
      

  4.   

    up,就是确保是字符串类型.$str1 = $str2 如果当$str2是数值类型时$str也变成了数值类型.如果在ASP中使用:if str1=str2 then (两个都是变量时)来比较时可能会误认为这是个赋值,
    可读性极差.
      

  5.   

    强制类型相当于$str1 = (string)$str2
      

  6.   

    其实差不多,可能是用惯了强类型语言的人的一种习惯吧。在php里无所谓了,php的精神就是开源+精练
      

  7.   

    null 跟 "" 是不一样的了
    isset 就可以区别出来
      

  8.   

    这个应该属于个人习惯的问题吧。
    PHP的变量类型转换是比较自由的。
    偶喜欢这样子,事事不用先声明。
      

  9.   

    谢谢各位,应该就是类型保证的考虑了,csdn真是个好地方。