【发布时间】:2011-04-08 10:03:59
【问题描述】:
我有一个变量$var。
如果$var 等于以下任何值abc、def、hij、klm 或nop,我想要回显"true"。有没有办法用像&&这样的单一语句来做到这一点??
【问题讨论】:
标签: php if-statement
我有一个变量$var。
如果$var 等于以下任何值abc、def、hij、klm 或nop,我想要回显"true"。有没有办法用像&&这样的单一语句来做到这一点??
【问题讨论】:
标签: php if-statement
一种优雅的方式是动态构建一个数组并使用in_array():
if (in_array($var, array("abc", "def", "ghi")))
switch statement 也是一种选择:
switch ($var) {
case "abc":
case "def":
case "hij":
echo "yes";
break;
default:
echo "no";
}
【讨论】:
&&怎么样?
if($var == "abc" || $var == "def" || ...)
{
echo "true";
}
我认为在这里使用“Or”而不是“And”会有所帮助
【讨论】:
你可以使用php的in_array函数
$array=array('abc', 'def', 'hij', 'klm', 'nop');
if (in_array($val,$array))
{
echo 'Value found';
}
【讨论】:
不知道,为什么要使用&&。有一个更简单的解决方案
echo in_array($var, array('abc', 'def', 'hij', 'klm', 'nop'))
? 'yes'
: 'no';
【讨论】:
您可以使用布尔运算符或:||
if($var == 'abc' || $var == 'def' || $var == 'hij' || $var == 'klm' || $var == 'nop'){
echo "true";
}
【讨论】:
我发现这个方法对我有用:
$thisproduct = "my_product_id";
$array=array("$product1", "$product2", "$product3", "$product4");
if (in_array($thisproduct,$array)) {
echo "Product found";
}
【讨论】:
in_array() 是 7 年前推荐的。此仅代码答案不会为页面添加任何新值。
你可以试试这个:
<?php
echo (($var=='abc' || $var=='def' || $var=='hij' || $var=='klm' || $var=='nop') ? "true" : "false");
?>
【讨论】:
试试这段代码:
$first = $string[0];
if($first == 'A' || $first == 'E' || $first == 'I' || $first == 'O' || $first == 'U') {
$v='starts with vowel';
}
else {
$v='does not start with vowel';
}
【讨论】:
最好使用数组并在循环中逐一比较每个值。它可以改变测试数组的长度。编写一个带2个参数的函数,1个是测试数组,另一个是要测试的值。
$test_array = ('test1','test2', 'test3','test4');
for($i = 0; $i < count($test_array); $i++){
if($test_value == $test_array[$i]){
$ret_val = true;
break;
}
else{
$ret_val = false;
}
}
【讨论】:
很抱歉重新提出这个问题,但我偶然发现它并相信它为问题增加了价值。
在 PHP 8.0.0^ 中,您现在可以像这样使用匹配表达式:
<?php
echo match ($var) {
'abc','def','hij','klm' => 'true',
};
?>
//echos 'true' as a string
【讨论】:
我不知道 $var 是否是一个字符串,而您只想找到那些表达式,但在这里它可以是任何一种方式。
尝试使用 preg_match http://php.net/manual/en/function.preg-match.php
if(preg_match('abc', $val) || preg_match('def', $val) || ...)
echo "true"
【讨论】: