2015-07-05 52 views
0
if (${"old_tag_$x"} == $tag) { 
} else { 
    ${"old_tag_$x"} = $tag; 
    setTermFieldbyId('tag', $tag, $x); 
} 

这工作正常。然而,它似乎很罗嗦,所以我试图这样简化它:在php中,if(true)/ else(false)和if(!true)之间有什么区别?

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

然而,这根本不起作用。尽管如此,但这对我来说似乎是不合逻辑的。我错了吗?

+0

如果它解决了您的问题,请务必在下面标记一个答案。 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – chris85

回答

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不等于TRUE,如果$ a不等于$ b型杂耍之后!

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

例如:

1 == '1'

是事实,但

1 === '1'

是假

以下是此文档的链接,http://php.net/manual/en/types.comparisons.php。这里有一个功能演示,http://sandbox.onlinephpfunctions.com/code/70adc739a1062ee91944b7bf75574643946ecc17

+0

你应该提到在PHP中'!='(和'==')包含类型转换,所以有些东西是不应该的“平等”。 – AbcAeffchen

+0

@AbcAeffchen注意补充。 – chris85

相关问题