从另一种语言转移到PHP并仍然习惯语法......
撰写此声明的正确方法是什么?关于逻辑运算符的手册还有待改进。
if($var !== '5283180' or '1234567')
答案 0 :(得分:3)
通常,比较是使用==
,反之是!=
。但是,如果您想要将值与其数据类型进行比较,则可以使用===
,反之亦然!==
。
有关详细信息,请参阅documentation。
您可以使用以下内容:
if($var!='5283180' || $var!='1234567')
答案 1 :(得分:2)
试试这个
if($var != '5283180' || $var != '1234567')
答案 2 :(得分:1)
PHP的or
功能与普通||
相同,但具有较低的绑定优先级。因此,这两个陈述:
$foo = ($bar != 'baz') or 'qux';
$foo = ($bar != 'baz') || 'qux';
似乎在其他方面是相同的,但执行的顺序实际上是相当的
不同。对于or
版本,它执行为:
($foo = ($bar != 'baz')) or 'qux';
- inequality test is performed
- result of the test is assigned to $foo
- result of the test is ORed with the string 'qux';
对于||
版本:
$foo = (($bar != 'baz') || 'qux');
- inquality test is performed
- result of test is ||'d with 'qux'
- result of the || is assigned to $foo.
答案 3 :(得分:0)
为了在其他人的基础上进行构建,正如OP提到的他们是PHP的新手,有几件事需要考虑。
首先,您要查找的PHP or
是双行(||
),每个项目必须是||
每一侧的声明。
if ( $var !== '5283180' || $var !== '1234567')
除了:
中所述 or
运算符与||
运算符相同,但优先级要低得多。
例如给出的例子(来自手册):
// The constant false is assigned to $f and then true is ignored
//Acts like: (($f = false) or true)
$f = false or true;
现在如上所述,存在一般比较(==
或'Equal')和类型比较(===
或'相同'),两者都具有相反(不)。在给定的示例中,测试将检查$var
与值是否相同。
来自PHP Manual:
$ a!== $ b |不一样|如果$ a不等于$ b,则为TRUE,或者它们的类型不同。
有了这个说法,请仔细检查这是你实际想要完成的事情。很可能你正在寻找!=
。