请解释一下这个php表达式“!$ variable”

时间:2012-09-08 14:15:24

标签: php operators

变量前面的exclamaton标记是什么意思?它是如何在这段代码中使用的?

编辑:从答案到目前为止,我怀疑我还应该提到这个代码是在一个函数中,其中一个参数是$ mytype ....这是一种检查$ mytype是否通过的方法? - 感谢所有响应者到目前为止。

 $myclass = null;

    if ($mytype == null && ($PAGE->pagetype <> 'site-index' && $PAGE->pagetype <>'admin-index')) {
        return $myclass;
    }
    elseif ($mytype == null && ($PAGE->pagetype == 'site-index' || $PAGE->pagetype =='admin-index')) {
        $myclass = ' active_tree_node';
        return $myclass;
    }
    elseif (!$mytype == null && ($PAGE->pagetype == 'site-index' || $PAGE->pagetype =='admin-index')) {
        return $myclass;
    }`

5 个答案:

答案 0 :(得分:4)

PHP中的感叹号表示not

if($var)

表示{/ 1}}在

时不为空或零或为假
$var

表示if(!$var) 为空或零或假。

将其视为以下行的查询:

$var

select someColumn where id = 3

答案 1 :(得分:3)

!否定了它放在前面的价值。因此,您发布的代码会检查$mytype的否定值是==null

return true; //true
return !true; //false

return false; //false
return !false; //true

return (4 > 10); //false
return !(4 < 10); //true

return true == false; //false
return !true == false; //true

return true XOR true; //false
return !true XOR true; //true
return !true XOR true; //false

答案 2 :(得分:2)

变量之前的

!否定了它的值

此语句实际上与!$mytype

之后的FALSE == NULL相同
!$mytype == null
如果TRUE包含以下内容之一,

语句将返回$mytype

  • TRUE
  • 零以外的数字
  • 非空字符串

答案 3 :(得分:1)

elseif (!$mytype == null && ($PAGE->pagetype == 'site-index' || $PAGE->pagetype =='admin-index')) {
    return $myclass;
}

以上!$mytype == null是错误的。 !$mytype表示如果变量的计算结果为false或为null,则条件将执行。

但是额外的== null是不必要的,基本上是if (false == null)if (null == null)

答案 4 :(得分:0)

!$variable条件一起使用的{p> If检查变量是Nul l还是不

例如

if(!$var)

表示$var为空。