Filtre Défini par l'Utilisateur
PHP Manual
PHP Manual»Constantes pré-définies»Filtre Défini par l'Utilisateur

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 :

function callback(string $value): mixed
value

La 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_ARRAY et FILTER_REQUIRE_SCALAR s'appliquent à ce filtre, et FILTER_NULL_ON_FAILURE modifie 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 un false retourné par la fonction de rappel en null ou en exception.

To Top