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;
}
最后两个可能不是一个好主意,但这取决于你在做什么,$x
来自哪里等等。我只是想说明有很多方法可以做到这一点。
您可以构建一个值数组并使用 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 , array $haystack [, bool $strict = 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";
}
?>
您可以使用 strpos:
if ( strpos( "mkyxpz" , $x) !== false )
也许,而不是if
,考虑switch
:
switch($x) {
case 'm':
case 'k':
case 'y':
case 'p':
case 'z':
[statements];
break;
default:
[more statements];
break;
}
请注意, 的值$x
将“通过”每个case
条件,直到它到达一个break
语句。