uopz_set_return

Provide a return value for an existing function

&reftitle.description; `bool` `uopz_set_return` `string` `function` `mixed` `value` `bool` `execute`&false; `bool` `uopz_set_return` `string` `class` `string` `function` `mixed` `value` `bool` `execute`&false;

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.

This function replaces `uopz_rename`.

&reftitle.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.

&reftitle.returnvalues;

True if succeeded, false otherwise.

&reftitle.examples;

### `uopz_set_return` example

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

&example.outputs;

    42

### `uopz_set_return` example

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

&example.outputs;

    12

### `uopz_set_return` class example

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

&example.outputs;

    12