array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.uopz-set-return.php', 1 => 'uopz_set_return', ), 'up' => array ( 0 => 'ref.uopz.php', 1 => 'Функции Uopz', ), 'prev' => array ( 0 => 'function.uopz-set-property.php', 1 => 'uopz_set_property', ), 'next' => array ( 0 => 'function.uopz-set-static.php', 1 => 'uopz_set_static', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/uopz/functions/uopz-set-return.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PECL uopz 5, PECL uopz 6, PECL uopz 7)
uopz_set_return — Предоставить возвращаемое значение для существующей функции
Установить возвращаемое значение для 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