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


How to check if a string is one of the known values?

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

假设我有上面的代码,如何编写语句"if($a among..."?

使用 in_array() 函数。

手册 说:

除非设置严格,否则使用松散比较搜索大海捞针。

例:

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

像这样:

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

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

有in_array函数。

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

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

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

试试这个:

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

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

in_array检查数组中是否存在值

布尔值in_array ( 混合$needle , 数组 $haystack [, 布尔值 $strict = FALSE ] ( 使用松散比较在大海捞针中搜索针,除非 严格设置。