Variable$var
があります。
"true"
が次の値のいずれかと等しい場合、$var
をエコーしますabc
、def
、hij
、klm
、またはnop
。 &&
のような単一のステートメントでこれを行う方法はありますか??
if($var == "abc" || $var == "def" || ...)
{
echo "true";
}
「And」の代わりに「Or」を使用すると、ここで役立つと思います
エレガントな方法は、その場で配列を構築し、in_array()
を使用することです:
if (in_array($var, array("abc", "def", "ghi")))
switch
ステートメント も代替手段です。
switch ($var) {
case "abc":
case "def":
case "hij":
echo "yes";
break;
default:
echo "no";
}
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";
}
これを試すことができます:
<?php
echo (($var=='abc' || $var=='def' || $var=='hij' || $var=='klm' || $var=='nop') ? "true" : "false");
?>
私はこの方法が私のために働いたことを見つけました:
$thisproduct = "my_product_id";
$array=array("$product1", "$product2", "$product3", "$product4");
if (in_array($thisproduct,$array)) {
echo "Product found";
}
次のコードを試してください:
$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';
}
配列を使用して、ループで各値を1対1で比較するとよいでしょう。テスト配列の長さを変更する利点があります。 2つのパラメーターを取る関数を作成します。1つはテスト配列、もう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;
}
}