在if子句中排除多个值

问题描述

| 我有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
}
    

解决方法

        您可以将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
}
因此,如果当前网址不在包含唯一网址的数组中,它将回显您的文本。     ,        在上面的示例中,您需要将&| s替换为|| 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...
}