(PECL uopz 5, PECL uopz 6, PECL uopz 7)
uopz_set_return — Fornece um valor de retorno para uma função existente
Define o valor de retorno de function
como value
. Se value
for um Closure e execute
estiver definido, o Closure será executado no lugar da função original.
É possível chamar a função original a partir do Closure.
Nota:
Esta função substitui uopz_rename().
class
O nome da classe que contém a função.
function
O nome de uma função existente.
value
O valor que a função deve retornar. Se um Closure for fornecido e o sinalizador de execução estiver definido, o Closure será executado no lugar da função original.
execute
Se for igual a true e um Closure tiver sido fornecido como valor, o Closure será executado no lugar da função original.
True se for bem-sucedido, false caso contrário.
Exemplo #1 Exemplo de uopz_set_return()
<?php
uopz_set_return("strlen", 42);
echo strlen("Banana");
?>
O exemplo acima produzirá:
42
Exemplo #2 Exemplo de uopz_set_return()
<?php
uopz_set_return("strlen", function($str) { return strlen($str) * 2; }, true );
echo strlen("Banana");
?>
O exemplo acima produzirá:
12
Exemplo #3 Exemplo de uopz_set_return() com uma 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");
?>
O exemplo acima produzirá:
12