使用||
(或)PHP或声明||
我,我需要与同一个变量来比较如此多的价值,是否有更好的方式来写更有效,如$city == -35 || -34 || -33
或更简单,这样我就不必重复变量名称,因为它是相同的变量只有值不断变化。
<?php
if ($city == -35 || $city == -34 || $xcity == -33)
{
$region = "noindex";
}
?>
有什么建议吗?
使用||
(或)PHP或声明||
我,我需要与同一个变量来比较如此多的价值,是否有更好的方式来写更有效,如$city == -35 || -34 || -33
或更简单,这样我就不必重复变量名称,因为它是相同的变量只有值不断变化。
<?php
if ($city == -35 || $city == -34 || $xcity == -33)
{
$region = "noindex";
}
?>
有什么建议吗?
您可以使用in_array()
if (in_array($city, array(-35, -34, -33))) {
$region = "noindex";
}
或者,如果他们是连续的(我suspec他们不是,这只是一个例子)
in_array($city, range(-35, -33))
是的。使用in_array
,
in_array($city, array(-35,-34,-33))
你可以使用:
if (in_array($city, array(-35, -34, -33))
假设$xcity
是一个错字,
switch ($city)
{
case -35:
case -34:
case -33:
$region = "noindex";
break;
}
不知道为什么这不是公认的答案。虽然稍微比'in_array'建议冗长(而且我不确定这两者的执行时间),但这是做OP所要求的“正确”方式。 – 2013-09-27 07:59:20
使用关联数组。 in_array将数组中的每个元素与你的var进行比较。关联数组使用散列表。它更快。
$cities = array(-33 => 1, -34 => 1, -35 => 1);
if (isset($cities[$city])) {
$region = "noindex";
}
如果'$ city'是-36,怎么办?这种方法会发出通知。最好查看'isset()' – jprofitt 2012-03-16 01:45:21
@jprofitt你是对的。我更新我的答案。 – 2012-03-16 01:48:09
对于这种特殊情况,'$ city> -36 && $ city <-32' :) – Ryan 2012-03-16 01:08:17