(PECL uopz 5, PECL uopz 6)
uopz_set_return — Предоставить возвращаемое значение для существующей функции
$class
, string $function
, mixed $value
[, bool $execute
= FALSE
] ) : bool
Установить возвращаемое значение для function
на value
. Если value
замыкание и установлен execute
, замыкание будет выполняться вместо исходной функции.
Можно вызвать исходную функцию из замыкания.
Замечание:
Эта функция заменяет uopz_rename().
class
Имя класса, содержащего функцию
function
Имя существующей функции
value
Возвращаемое значение функцией. Если передано замыкание и параметр execute установлен, замыкание будет выполнено вместо исходной функции.
execute
Если true, и в параметре value передано замыкание, замыкание будет выполнено вместо исходной функции.
True в случае успешного выполнения, false в противном случае.
Пример #1 Пример использования uopz_set_return()
<?php
uopz_set_return("strlen", 42);
echo strlen("Banana");
?>
Результат выполнения данного примера:
42
Пример #2 Пример использования uopz_set_return()
<?php
uopz_set_return("strlen", function($str) { return strlen($str) * 2; }, true );
echo strlen("Banana");
?>
Результат выполнения данного примера:
12
Пример #3 Пример использования uopz_set_return() с классом
<?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");
?>
Результат выполнения данного примера:
12