PHP OR运算符有问题吗?

时间:2011-10-05 09:42:04

标签: php

我的转储变量显示在他们的页面上:

if ($_SERVER['REMOTE_ADDR'] == '44.71.45.98' OR '44.71.45.99') {
  //blah blah
}else{
  //blah
}

我知道这是错的,但是当我尝试..我正在为我的另一台电脑工作。即使我知道这是错误的,也没有提示我错误...

通常我会编码或喜欢这些:

//this is correct
if(isset($a) or isset($b)){

}

6 个答案:

答案 0 :(得分:6)

是的,它应该是:

if ($_SERVER['REMOTE_ADDR'] == '44.71.45.98' or $_SERVER['REMOTE_ADDR'] == '44.71.45.99') ...

'或'(或'||')将布尔(true或false)表达式组合在一起(例如使用'=='进行比较)。在您的原始代码中,它将第二个IP字符串转换为布尔值 - 值为true - 因此if语句将始终匹配。

答案 1 :(得分:4)

if (
$_SERVER['REMOTE_ADDR'] == '44.71.45.98'
OR
$_SERVER['REMOTE_ADDR'] == '44.71.45.99'
)

答案 2 :(得分:3)

你的表情不正确。它应该是这样的:

if ($_SERVER['REMOTE_ADDR'] == '44.71.45.98' OR
    $_SERVER['REMOTE_ADDR'] == '44.71.45.99')

99%的开发者如何做到这一点:

if ($_SERVER['REMOTE_ADDR'] == '44.71.45.98' ||
    $_SERVER['REMOTE_ADDR'] == '44.71.45.99')

答案 3 :(得分:3)

我更喜欢使用IP数组(如果不止一个)

if(in_array($_SERVER['REMOTE_ADDR'], array('44.71.45.98', '44.71.45.99', etc))

答案 4 :(得分:2)

这里你需要使用逻辑OR运算符..

你的代码应该是这样的..

if($_SERVER['REMOTE_ADDR'] == '44.71.45.98' || $_SERVER['REMOTE_ADDR'] == '44.71.45.99'){
    code if condition is true..
}
else{
  code if condition is false..
}

也可以这样做..

if($_SERVER['REMOTE_ADDR'] == '44.71.45.98' or $_SERVER['REMOTE_ADDR'] == '44.71.45.99')

答案 5 :(得分:2)

我更喜欢使用||作为OR运算符。代码应该是:

if ($_SERVER['REMOTE_ADDR'] == '44.71.45.98' || $_SERVER['REMOTE_ADDR'] == '44.71.45.99')