如何检查字符串是否是已知值之一?

时间:2012-04-04 07:55:54

标签: php

<?php
$a = 'abc';

if($a among array('are','abc','xyz','lmn'))
    echo 'true';
?>

假设我有上面的代码,如何编写语句&#34; if($ a from ...)&#34;? 谢谢

4 个答案:

答案 0 :(得分:13)

使用in_array()功能。

手册说:

  

使用松散比较搜索haystack针头,除非设置了strict。

示例:

<?php
$a = 'abc';

if (in_array($a, array('are','abc','xyz','lmn'))) {
    echo "Got abc";
}
?>

答案 1 :(得分:5)

像这样:

if (in_array($a, array('are','abc','xyz','lmn')))
{
  echo 'True';
}

此外,虽然技术上允许在您给出的示例中不使用花括号,但我强烈建议您使用它们。如果您稍后再回来并在条件为真时添加更多逻辑,则可能会忘记添加大括号,从而破坏您的代码。

答案 2 :(得分:2)

in_array功能。

if(in_array($a, array('are','abc','xyz','lmn'), true)){
   echo 'true';
}

注意: 的 您应该将第3个参数设置为true以使用严格比较。

in_array(0, array('are','abc','xyz','lmn'))将返回true,这可能不是您所期望的。

答案 3 :(得分:1)

试试这个:

if (in_array($a, array('are','abc','xyz','lmn')))
{
  // Code
}

http://php.net/manual/en/function.in-array.php

  

in_array - 检查数组中是否存在值

     

bool in_array(混合$ needle,数组$ haystack [,bool $ strict =   FALSE])使用松散比较搜索干草堆的针,除非   严格确定。