Apporte une valeur de retour pour une fonction existante

# uopz_set_return

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

uopz_set_return — Apporte une valeur de retour pour une fonction existante

### Description

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

Définit la valeur de retour de la `function` à `value`. Si `value` est une fermeture et que `execute` est défini, la fermeture sera exécutée à la place de la fonction d'origine. Il est possible d'appeler la fonction d'origine depuis la fermeture.

> Note:

> Cette fonction remplace uopz_rename().

### Liste de paramètres

`class`

  Le nom de la classe contenant la fonction

`function`

  Le nom d'une fonction existante

`value`

  La valeur que la fonction doit renvoyer. Si une fermeture est fournie et que le drapeau d'exécution est défini, la fermeture sera exécutée à la place de la fonction d'origine.

`execute`

  Si true, et qu'une fermeture a été fournie en tant que valeur, la fermeture sera exécutée à la place de la fonction d'origine.

### Valeurs de retour

True en cas de succès, sinon false.

### Exemples

Exemple #1 Exemple de uopz_set_return()

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

L'exemple ci-dessus va afficher :

    42

Exemple #2 Exemple de uopz_set_return()

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

L'exemple ci-dessus va afficher :

    12

Exemple #3 Exemple de uopz_set_return() avec une classe

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

L'exemple ci-dessus va afficher :

    12

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open