Filtro definido por el usuario

Estas constantes son definidas por esta extensión, y solo están disponibles si esta extensión ha sido compilada con PHP, o bien cargada en tiempo de ejecución.

FILTER_CALLBACK (int)

Este filtro delega el filtrado a una función definida por el usuario. El callable se pasa a través del parámetro options como el valor asociado a la clave 'options'.

La retrollamada debe tener la siguiente firma:

function callback(string $value): mixed
value

El valor que está siendo filtrado.

Nota:

El valor devuelto por la retrollamada será el valor devuelto por la función de filtro invocada.

Ejemplo #1 Ejemplo de uso de FILTER_CALLBACK para validar un nombre de inicio de sesión

<?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);
?>

El ejemplo anterior mostrará:

string(10) "val1dL0gin"
NULL

Nota:

A partir de PHP 8.1.25 y 8.2.12, los flags estructurales FILTER_REQUIRE_ARRAY, FILTER_FORCE_ARRAY y FILTER_REQUIRE_SCALAR se aplican a este filtro, y FILTER_NULL_ON_FAILURE cambia la forma en que se informa de tal fallo estructural. En versiones anteriores todos los flags eran ignorados. Los flags específicos del filtro siempre son ignorados y, dado que el valor devuelto por la retrollamada es el resultado, la retrollamada en sí misma no puede fallar: ningún flag convierte un false devuelto por la retrollamada en null o en una excepción.

+add a note

User Contributed Notes

There are no user contributed notes for this page.