php8.5
Home/ Manual/ uopz / functions/ uopz_set_return

uopz_set_return

PHP function Edit on GitHub ✎

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

Provide a return value for an existing function

Description

uopz_set_return(string $function, mixed $value, bool $execute = false): bool
uopz_set_return(string $class, string $function, mixed $value, bool $execute = false): bool

Sets the return value of the function to value. If value is a Closure and execute is set, the Closure will be executed in place of the original function. It is possible to call the original function from the Closure.

Note

This function replaces uopz_rename.

Parameters

class

The name of the class containing the function

function

The name of an existing function

value

The value the function should return. If a Closure is provided and the execute flag is set, the Closure will be executed in place of the original function.

execute

If true, and a Closure was provided as the value, the Closure will be executed in place of the original function.

Return Values

True if succeeded, false otherwise.

Examples

uopz_set_return() example

php
<?php
uopz_set_return("strlen", 42);
echo strlen("Banana");
?>

The above example will output:

output
42

uopz_set_return() example

php
<?php
uopz_set_return("strlen", function($str) { return strlen($str) * 2; }, true );
echo strlen("Banana");
?>

The above example will output:

output
12

uopz_set_return() class example

php
<?php
class My {
    public static function strlen($arg) {
        return strlen($arg);
    }
}
uopz_set_return(My::class, "strlen", function($str) { return strlen($str) * 2; }, true );
echo My::strlen("Banana");
?>

The above example will output:

output
12

Source: reference/uopz/functions/uopz-set-return.xml · from the official PHP manual (php/doc-en)