Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.
FILTER_CALLBACK
(int)
Ce filtre délègue le filtrage à une fonction définie par l'utilisateur.
Le callable est passé via le paramètre
options en tant que valeur associée à la clé
'options'.
La fonction de rappel doit avoir la signature suivante :
valueLa valeur qui est en cours de filtrage.
Note:
La valeur retournée par la fonction de rappel sera la valeur retournée par la fonction de filtre invoquée.
Exemple #1
Exemple d'utilisation de FILTER_CALLBACK pour valider
un nom de connexion
<?php
function validate_login(string $value): ?string
{
if (strlen($value) >= 5 && ctype_alnum($value)) {
return $value;
}
return null;
}
$login = "val1dL0gin";
$filtered_login = filter_var($login, FILTER_CALLBACK, ['options' => 'validate_login']);
var_dump($filtered_login);
$login = "f&ke login";
$filtered_login = filter_var($login, FILTER_CALLBACK, ['options' => 'validate_login']);
var_dump($filtered_login);
?>L'exemple ci-dessus va afficher :
string(10) "val1dL0gin" NULL
Note:
À partir de PHP 8.1.25 et 8.2.12, les indicateurs structurels
FILTER_REQUIRE_ARRAY,FILTER_FORCE_ARRAYetFILTER_REQUIRE_SCALARs'appliquent à ce filtre, etFILTER_NULL_ON_FAILUREmodifie la façon dont un tel échec structurel est rapporté. Dans les versions antérieures, tous les indicateurs étaient ignorés. Les indicateurs propres à un filtre sont toujours ignorés et, puisque la valeur de retour de la fonction de rappel constitue le résultat, la fonction de rappel elle-même ne peut pas échouer : aucun indicateur ne transforme unfalseretourné par la fonction de rappel ennullou en exception.