我似乎遇到了数组搜索错误.以下是我的代码.
$allowedTypes = array(
'image/gif',
'image/jpg',
'image/jpeg',
'image/png'
);
if(array_search("image/gif", $allowedTypes)) {
print "true";
} else {
print "false";
}
Run Code Online (Sandbox Code Playgroud)
它总是打印错误.即使image/gif在允许类型列表中.
array_search返回数组中项的索引.在这种情况下,它返回整数0,当转换为bool时,它是false.
如果你阅读了文档,你会在一个大的红色框中看到以下内容:
此函数可能返回布尔值FALSE,但也可能返回非布尔值,该值的计算结果为FALSE,例如0或"".有关更多信息,请阅读有关布尔值的部分.使用===运算符测试此函数的返回值.
你必须使用:
if (array_search("image/gif", $allowedTypes) !== false) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
或者,为了简单地告诉数组是否包含该项,您可以使用in_array()哪个以布尔形式返回一个简单的yes/no:
if (in_array("image/gif", $allowedTypes)) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
543 次 |
| 最近记录: |