(PECL uopz 5, PECL uopz 6, PECL uopz 7)
uopz_set_return — 为现有函数提供返回值
将 function
的返回值设置为 value
。如果 value
是一个 Closure 并且设置了 execute
,则 Closure 将代替原始函数执行。可以从 Closure 中调用原始函数。
注意:
此函数替换了 uopz_rename()。
class
包含函数的类的名称
function
现有函数的名称
value
函数应返回的值。如果提供了一个 Closure 并且设置了 execute 标志,则 Closure 将代替原始函数执行。
execute
如果为 true,并且作为值提供了 Closure,则 Closure 将代替原始函数执行。
如果成功则返回 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