陈述条件相同

时间:2018-07-03 04:39:16

标签: php if-statement isset

如果我错了,请纠正我。我看到很多人都用这种格式写条件标头。

if(isset($var) && $var!=""){}

基本上,它只是检查$ var是否不是空值,对吗?以我的理解,这就足够了。

if($var){}

我想念什么吗?我的方法不可靠吗?我的同事已经指出,我应该使用第一个。有时候我只是懒散地写东西,所以我只想简化它。

3 个答案:

答案 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";
}

Example

假设$ var为“ 0”,则它肯定是isset,不等于空字符串,但未通过if ($var)测试。

答案 1 :(得分:1)

php if($var){} 将检查$var是否为真。在这种情况下,如果第一次使用$var,则将生成通知,提示您正在尝试使用未定义的变量。

答案 2 :(得分:1)

  1. isset()函数用于检查是否设置了变量。如果未设置变量,则可能会进入 else 条件。

在您的情况下,如果$ 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,那么您将不会得到错误