PHP 大会日本 2024

uopz_set_return

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_set_return为现有函数提供返回值

描述

uopz_set_return(字符串 $function, 混合 $value, 布尔值 $execute = false): 布尔值
uopz_set_return(
    字符串 $class,
    字符串 $function,
    混合 $value,
    布尔值 $execute = false
): 布尔值

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
添加注释

用户贡献的笔记

此页面没有用户贡献的笔记。
To Top