【发布时间】:2017-05-02 03:34:41
【问题描述】:
在使用filter_var_array 和FILTER_CALLBACK 时,有没有办法定义默认值(或强制每次调用回调)?
示例数据:
{
"name": "John"
}
示例用法:
$params = filter_var_array($datas_from_above, [
'name' => FILTER_SANITIZE_STRING,
'age' => [
'filter' => FILTER_CALLBACK,
'options' => function ($data) {
// I was thinking $data would be null here
// but this function is not called if the
// param is not present in the input array.
die('stop?');
}
]
], true); // Add missing keys as NULL to the return value
使用其他过滤器时,有default 选项。因此,为回调过滤器设置默认值不应该是超自然的。我错过了什么明显的东西吗?
谢谢
【问题讨论】:
-
不认为这是可能的。它应该过滤现有数据,而不是无中生有地创建它......
-
看来你是对的。默认值仅在验证器(布尔值、int 等)不验证输入时使用。如果输入不在此处,则不是(即使 TRUE 是 filter_var_array 的第 3 个参数)。谢谢
标签: php filter callback default-value