(PECL uopz 5, PECL uopz 6, PECL uopz 7)
uopz_set_return — 為現有函式提供返回值
設定函式 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