Joh*_*ohn 13 php conditional-operator
我想离开这个:
if($var == 3 || $var == 4 || $var == 5 || $var =='string' || $var == '2010-05-16') {
// execute code here
}
Run Code Online (Sandbox Code Playgroud)
对此:
if($var == (3, 4, 5, 'string', '2010-05-16')) { // execute code here }
Run Code Online (Sandbox Code Playgroud)
看起来非常冗余以便继续输入$var,我发现它使得阅读有点麻烦.PHP中有没有办法以这种方式简化它?我在这里阅读一篇文章,在使用XQuery时你可以使用=运算符$var = (1,2,3,4,5)等.
Gre*_*reg 34
将值放在数组中,然后使用函数in_array()检查它们是否存在.
$checkVars = array(3, 4, 5, "string", "2010-05-16");
if(in_array($var, $checkVars)){
// Value is found.
}
Run Code Online (Sandbox Code Playgroud)
http://uk.php.net/manual/en/function.in-array.php
如果您需要经常执行此检查并且需要良好的性能,请不要使用慢速数组搜索,而是使用快速哈希表查找:
$vals = array(
1 => 1,
2 => 1,
'Hi' => 1,
);
if (isset($vals[$val])) {
// go!
}
Run Code Online (Sandbox Code Playgroud)
您可以使用in_array()。
if (in_array($var, array(3,4,5,"string","2010-05-16"))) { .... }
Run Code Online (Sandbox Code Playgroud)
if (in_array($var, array(3, 4, 5, 'string', '2010-05-16'))) {execute code here }
Run Code Online (Sandbox Code Playgroud)
或者,或者,一个开关块:
switch ($var) {
case 3:
case 4:
case 5:
case 'string':
case '2010-05-16':
execute code here;
break;
}
Run Code Online (Sandbox Code Playgroud)