我想比较两个数组,一个是默认设置的,另一个是用户输入的。
当我仅在默认值中设置布尔值时,我想确保用户不会使用字符串或数字。例如,'truex' 或 '1' 是不可接受的。
下面是我的代码示例,
$default = array(
"randomise" => false,
"id" => null
);
$config = array(
"randomise" => truex
);
function process_array($default,$config)
{
# Loop the array.
foreach($default as $key => $value)
{
if ((filter_var($default[$key], FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE) === NULL) && (filter_var($config[$key], FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE) === NULL))
{
return 'true or false only';
}
}
# Return the result.
return $array;
}
print_r(process_array($default,$config));
但是即使用户提供了正确的数据类型,此代码也会返回“仅真或假”。我怎样才能解决这个问题?