PHP“或”语法语句

时间:2013-09-27 18:56:50

标签: php logical-operators

从另一种语言转移到PHP并仍然习惯语法......

撰写此声明的正确方法是什么?关于逻辑运算符的手册还有待改进。

if($var !== '5283180' or '1234567')

4 个答案:

答案 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')

除了

正如PHP Manual

中所述

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,或者它们的类型不同。

有了这个说法,请仔细检查这是你实际想要完成的事情。很可能你正在寻找!=