$allowed_values = array('iframe', 'tiddlywiki');
$target = filter_input( INPUT_GET, 'target',
FILTER_CALLBACK,
array(
'options' => function($key)use($allowed_values)
{
return in_array($key, $allowed_values) ? $key : 'XXX';
},
'default' => 'XXX'
));
function filter_input_allowed($input_array, $required_key, $allowed_values, $default_value)
{
return
in_array($required_key, $input_array)
? filter_input( $input_array,
$required_key,
FILTER_CALLBACK,
array(
'options' => function($key)use($allowed_values, $default_value)
{
return in_array($key, $allowed_values) ? $key : $default_value;
},
'default' => $default_value
))
: $default_value;
}
Ну а различия между этими языками вообще не должны вызывать никаких проблемы в изучении для программиста с таким большим опытом как у вас. У меня не вызывают.
Вероятно какие-то внутренние оптимизации, потому что по идее сишный array_walk() должен работать быстрее перебора.