在控制器中验证动态保存方法时,我想确保给定的情况只接受0和1作为有效值。当我试图操纵输入表单时,提交' aaa'作为值,以下仍然返回true。那是为什么?
var_dump(in_array('aaa', [0, 1])); // true, I was expecting it to return false
答案 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"; }