似乎你不能在PHP中使用search_array函数来搜索0索引并将其评估为真.
以此代码为例:
$test=array(100, 101, 102, 103);
if($key=array_search(100,$test)){
echo $key;
}
else{
echo "Not found";
}
Run Code Online (Sandbox Code Playgroud)
在大海捞针中找到针'100'并且密钥返回为0.到目前为止一直很好,但是当我评估搜索是否成功时它会失败,因为返回的值为0,等于false!
php手册建议使用'!==',但这样做不会返回键(数组索引),而是返回1或0:
if($key=(array_search(103,$test)!== false)){
}
Run Code Online (Sandbox Code Playgroud)
那么我怎样才能成功搜索数组,找到0索引中的匹配并将其评估为true?
mea*_*gar 31
这在文档中明确提到.你需要使用===或!==:
$key = array_search(...);
if ($key !== false) ...
Run Code Online (Sandbox Code Playgroud)
否则,何时$key是0,当测试为布尔值时评估为false.
第二个示例块中的条件将执行顺序优先级赋予!==运算符,但是您想做相反的事情。
if (($key = array_search(100,$test)) !== false) {
Run Code Online (Sandbox Code Playgroud)
!==具有更高的优先级比==这使得括号必要的。