(PECL uopz 5, PECL uopz 6, PECL uopz 7)
uopz_set_return — Apporte une valeur de retour pour une fonction existante
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().
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.
True en cas de succès, sinon false.
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