php8.5
Home/ Manual/ reference / filter/ User Defined Filter

User Defined Filter

This filter delegates the filtering to a user defined function. The callable is passed via the options parameter as the value associated to the 'options' key.

Constants

FILTER_CALLBACK (int)

This filter delegates the filtering to a user defined function. The callable is passed via the options parameter as the value associated to the 'options' key.

The callback should have the following signature:

callback(string $value): mixed
value

The value that is being filtered.

Note

The value returned by the callback will be the value returned by the invoked filter function.

Example of using FILTER_CALLBACK to validate a login name

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

The above example will output:

output
string(10) "val1dL0gin"
NULL
Note

As of PHP 8.1.25 and 8.2.12, the structural flags FILTER_REQUIRE_ARRAY, FILTER_FORCE_ARRAY and FILTER_REQUIRE_SCALAR apply to this filter, and FILTER_NULL_ON_FAILURE changes how such a structural failure is reported. In earlier versions all flags were ignored. Filter specific flags are always ignored, and since the return value of the callback is the result, the callback itself cannot fail: no flag turns a false returned by the callback into null or an exception.

Source: reference/filter/constants.callback.xml · from the official PHP manual (php/doc-en)