PHP的in_array bevahior让我感到惊讶

时间:2017-07-25 10:11:17

标签: php

在控制器中验证动态保存方法时,我想确保给定的情况只接受0和1作为有效值。当我试图操纵输入表单时,提交' aaa'作为值,以下仍然返回true。那是为什么?

var_dump(in_array('aaa', [0, 1])); // true, I was expecting it to return false

1 个答案:

答案 0 :(得分:8)

你需要使用“strict”设置,强制函数检查元素的类型:

var_dump(in_array('aaa', [0, 1], true));

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

  

如果第三个参数strict设置为TRUE,那么in_array()   函数还将检查大海捞针的类型。

它返回true的原因是因为字符串是真实的,1也是如此。

if( "aaa" ){ echo "you will see me"; }