php中的if(true)/ else(false)和if(!true)有什么区别?

时间:2015-07-05 03:24:35

标签: php

if (${"old_tag_$x"} == $tag) {
} else {
    ${"old_tag_$x"} = $tag;
    setTermFieldbyId('tag', $tag, $x);
}

这很好用。但是,它看起来确实很冗长,所以我试着简化它:

if (!${"old_tag_$x"} == $tag) {
    ${"old_tag_$x"} = $tag;
    setTermFieldbyId('tag', $tag, $x);
}

然而,这根本不起作用。还在搞清楚事情,但这对我来说似乎不太明白。我错了吗?

1 个答案:

答案 0 :(得分:2)

应该是

if (${"old_tag_$x"} != $tag) {
     ${"old_tag_$x"} = $tag;
     setTermFieldbyId('tag', $tag, $x);
}

http://www.php.net/manual/en/language.operators.comparison.php

来自手册:

  

$ a!= $ b如果在类型杂耍之后$ a不等于$ b,则不等于TRUE。

另请注意,=====(或!=!==)不同。 =====宽松。 ===要求变量类型匹配(例如,字符串等于字符串,或者整数等于整数)。

例如:

  

1 ==' 1'

是真的但是

  

1 ===' 1'

是假的

此处还有指向此文档的链接http://php.net/manual/en/types.comparisons.php。以下是http://sandbox.onlinephpfunctions.com/code/70adc739a1062ee91944b7bf75574643946ecc17

的功能演示