在if子句中排除多个值

时间:2011-06-01 07:30:02

标签: php if-statement

我有30个网站,我需要回应其中的24个网站。我该如何排除其他人?这段代码不起作用,因为我认为它的逻辑是假的:)

$currentsite = get_bloginfo('wpurl'); // Here i get the curent site.

如果当前站点与下面的6中的任何一个匹配,则不应运行if子句。

if ( $currentsite != 'site 1' || 

$currentsite != 'site1' || 

$currentsite != 'site2'|| 

$currentsite != 'site3' || 

$currentsite != 'site4' ||

$currentsite != 'site5' ) {

do something
}

2 个答案:

答案 0 :(得分:4)

您可以将您的url-s放在一个字符串数组中:

$linksArray = array();
$linksArray[] = 'site1';
$linksArray[] = 'site2';
$linksArray[] = 'site3';
$linksArray[] = 'site4';
$linksArray[] = 'site5';
$linksArray[] = 'site6';

之后你可以像这样使用in_array()函数:

if (!in_array($currentsite, $linksArray) {
   // echo your something
}

如果当前网址不在包含排他网址的数组中,它会回显你的文字。

答案 1 :(得分:4)

在上面的例子中,你需要用&& s替换||:

if ($current_site != 'site1' && $current_site != 'site2' ...) 

更简单的方法是创建一个您要排除的网站数组,并取消in_array检查:

$excluded_sites = array ('site1','site2','site3');

if (!in_array($current_site, $excluded_sites)) {
    do something...
}