Log in

View Full Version : PHP的if判断,为什么要写两个条件


Paradise Valley
2016-02-28, 10:16 PM
PHP的if判断,为什么要写两个条件,只写一个$str==='string'不是也一样吗?
是出于速度的考虑吗?
代码如下,


if(isset($str) && $str==='string'){
...
}

Parker Crossroads
2016-02-28, 10:21 PM
如果PHP处理一个未声明的变量就会触发一个Notice错误,问题不大并不会终止程序的运行
但,这是写一个严谨程序的坏习惯
特别是在使用FrameWork的时候,Notice错误会被catch,并终止程序的运行。

所以,


// 判断一个变量是否存在
isset($attr) // $attr等于null或许未声明,将返回false

// 判断一个变量是否有值,请使用
empty($attr) // $attr等于'0'或''或0或null,将返回true

// 坏习惯 让弱类型的PHP去处理,看似很省心的却可能带来意想不到的结果
if($attr)

Parrott
2016-02-28, 10:21 PM
人们在追寻问题的答案的时候,却总是忘记追寻问题本身的意义。
•如果前面的代码已经明确 $str 变量的存在,何必加一句 isset($str) ?
•如果前面的代码不能表明 $str 变量的存在,为什么不加 isset($str) ?