(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().
classLe nom de la classe contenant la fonction
functionLe nom d'une fonction existante
valueLa 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.
executeSi 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