PHP Conference Japan 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 設定為 true,則 Closure 將會取代原始函式執行。在 Closure 中也可以呼叫原始函式。

注意事項:

此函式取代了 uopz_rename()

參數

class

包含函式的類別名稱

function

現有函式的名稱

value

函式應該回傳的值。如果提供 Closure 且 execute 旗標設定為 true,則 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