如果我错了,请纠正我。我看到很多人都用这种格式写条件标头。
if(isset($var) && $var!=""){}
基本上,它只是检查$ var是否不是空值,对吗?以我的理解,这就足够了。
if($var){}
我想念什么吗?我的方法不可靠吗?我的同事已经指出,我应该使用第一个。有时候我只是懒散地写东西,所以我只想简化它。
答案 0 :(得分:3)
他们不是一回事。
if (expr)
使用以下规则进行评估-> http://php.net/manual/en/types.comparisons.php#types.comparisons
<?php
$var = "0";
if (isset($var) && $var != "") {
echo "first block\n";
}
if ($var) {
echo "second block\n";
}
假设$ var为“ 0”,则它肯定是isset,不等于空字符串,但未通过if ($var)
测试。
答案 1 :(得分:1)
php
if($var){}
将检查$var
是否为真。在这种情况下,如果第一次使用$var
,则将生成通知,提示您正在尝试使用未定义的变量。
答案 2 :(得分:1)
在您的情况下,如果$ var不可用,则可能会遇到此错误未定义变量:var 。因此,检查isset总是对您的代码有益。
案例1:
if($var){
echo 'pass';
}else{
echo 'fail';
}
输出:通知:未定义的变量:第48行的E:\ siva \ htdocs \ test.php中的var 失败
案例2:
if(isset($var)){
echo 'pass';
}else{
echo 'fail';
}
输出:失败
案例3:
$var = '';
if($var){
echo 'pass';
}else{
echo 'fail';
}
输出:失败
在这种情况下3更有趣,如果您使用isset失败,将变量定义为null,那么您将不会得到错误