1

变量前面的感叹号是什么意思?它是如何在这段代码中使用的?

编辑:从目前的答案来看,我怀疑我还应该提到这段代码在一个函数中,其中一个参数是 $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;
    }`
4

5 回答 5

4

PHP中的感叹号表示not

if($var)

表示 if$var不为 null 或零或 false while

if(!$var)

表示如果$var是空或零或假。

将其视为如下查询:

select someColumn where id = 3

select someColumn where id != 3
于 2012-09-08T14:17:16.110 回答
3

!否定它放在前面的任何东西的价值。因此,您发布的代码会检查是否否定值$mytype==to 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
于 2012-09-08T14:18:08.580 回答
2

!在变量否定它的值之前

这个陈述实际上和!$mytypesince一样FALSE == NULL

!$mytype == null

TRUE如果$mytype包含以下之一,则语句将返回:

  • TRUE
  • 零以外的数字
  • 非空字符串
于 2012-09-08T14:26:10.120 回答
1
elseif (!$mytype == null && ($PAGE->pagetype == 'site-index' || $PAGE->pagetype =='admin-index')) {
    return $myclass;
}

楼上!$mytype == null说的太不对了。!$mytype表示如果变量的计算结果为假或为空,则条件将执行。

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

于 2012-09-08T14:20:05.827 回答
0

!$variableIf条件一起使用来检查变量是Null 还是 Not

例如

if(!$var)

表示如果$varIS 为空。

于 2012-09-08T14:22:48.290 回答