# 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

uopz_set_return(string `$function`, mixed `$value`, bool `$execute` = `false`): bool
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