if(($x == "m") || ($x == "k") || ($x == "y") || ($x == "p") || ($x == "z"))
これにはもっと良いアプローチがあると確信しています。何度も繰り返すのは理想的ではありません$x
。上記のステートメントを書くためのより良い、より簡単な方法はありますか?
編集:
if($x == ('m' || 'k' || 'y' || 'p')
上記のようなものでしょうか?
if(($x == "m") || ($x == "k") || ($x == "y") || ($x == "p") || ($x == "z"))
これにはもっと良いアプローチがあると確信しています。何度も繰り返すのは理想的ではありません$x
。上記のステートメントを書くためのより良い、より簡単な方法はありますか?
編集:
if($x == ('m' || 'k' || 'y' || 'p')
上記のようなものでしょうか?
in_array
次のように使用できます。
if( in_array($x, Array("m","k","y","p","z")))
または、文字列を作成してテストすることもできます。
if( strpos("mkypz",$x) !== false)
または正規表現で:
if( preg_match("/[mkypz]/",$x))
またはswitch
:
switch($x) {
case "m":
case "k":
case "y":
case "p":
case "z":
// do something
break;
}
最後の 2 つはおそらく良い考えではありませんが、何をしているのか、どこ$x
から来ているのかなどによって異なります。これを行うには多くの方法があることを説明したかっただけです。
strpos を使用できます。
if ( strpos( "mkyxpz" , $x) !== false )
in_array() 関数を使用できます。
PHPドキュメントサイトから。
<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
echo "Got Irix";
}
if (in_array("mac", $os)) {
echo "Got mac";
}
?>
の代わりにif
、次のことを検討してswitch
ください。
switch($x) {
case 'm':
case 'k':
case 'y':
case 'p':
case 'z':
[statements];
break;
default:
[more statements];
break;
}
の値は、ステートメントに到達するまで$x
すべての条件を「通過」することに注意してください。case
break
値の配列を作成し、in_array() を使用できます。
$check = array('11','23','44')
if(!in_array($x, $check)){
.... do stuff
}
または切り替えを行います
switch($x){
case "11":
case "23":
case "44":
echo "match:" break;
default:
echo "no match"; break;
}
可能性は無限大です....
in_array() を使用し、bool in_array (混合 $needle 、配列 $haystack [, bool $strict = FALSE ] )