Lo que me indicabas es, como pasar varios parámetros en la función de callback, lo cual esta bien, es lo que pregunte al principio, pero ahora no se como utilizar el valor que este procesando la función filter_input_array en cada momento, digamos:
La idea realmente es utilizar un filter_input_array donde esta toma cada elemento del array de entrada $_GET y automáticamente lo filtra de acuerdo a lo que se indique en la variable $filters, la cual podría extenderse para que revisara cada entrada GET de acuerdo a su clave,
de:
Código PHP:
$filters = array("action" => array("filter" => FILTER_CALLBACK, array("options" => call_user_func_array('compare', array('opcionAComparar', array('op1','op2','op3','op4')))));
a
Código PHP:
$filters = array(
"action" => array("filter" => FILTER_CALLBACK, array("options" => call_user_func_array('compare', array('opcionAComparar', array('op1','op2','op3','op4')))));
"username" => array("filter" => FILTER_CALLBACK, array("options" => 'verifyUsername')),
"email" => FILTER_VALIDATE_EMAIL,
"password" => array("filter" => FILTER_CALLBACK, array("options" => 'verifyPassword')),
"contry" => array("filter" => FILTER_CALLBACK, array("options" => 'verifyCountry')),
);
esto es:
"filtrar la variable $_GET['action'] de acuerdo a la función 'compare' ",
"filtrar la variable $_GET['username'] de acuerdo a la función 'verifyUsername'"
"filtrar la variable $_GET['email'] de acuerdo al filtro pre construido FILTER_VALIDATE_EMAIL",...etc
Código PHP:
// ... etc
function compare($action, $actions){
foreach($actions as $posible)
if($action == $posible)
return $posible;
return 'idle';
}
function verifyUsername($user){
//...
}
$result = filter_input_array(INPUT_GET, $filters);
// ... etc
Sin embargo por ejemplo cuando se filtre la variable $_GET['username'] su valor es pasado automáticamente a la función verifyUsername, lo cual no sucede con la variable $_GET['action'] por lo que probablemente tendría que escribirlo de la siguiente manera:
Código PHP:
"action" => array("filter" => FILTER_CALLBACK, array("options" => call_user_func_array('compare', array($_GET['action'], array('op1','op2','op3','op4')))));
substituyendo la cadena 'opcionAcomparar' por la variable $_GET['action'], es decir lo tendría que especificar manualmente, para aquellas funciones de múltiples parámetros a diferencia de aquellas como la que filtra a $_GET['username'] donde solo indico el nombre de la función que quiero utilizar y el parametro se pasa automáticamente.
La duda:
¿Como hago para pasar automáticamente el valor que se esta filtrando a una función de callback junto con otros parámetros, tal como un array?
espero haber sido mas claro ahora, lo que pasa es que soy algo novato en esto de los post Gracias.