gpt4 book ai didi

PHP:如何将变量添加到函数名称?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:07:57 24 4
gpt4 key购买 nike

我有一个带有回调的类。我将一个字符串传递给类,然后使用该字符串作为回调函数调用回调。它的工作原理有点像这样:

$obj->runafter( 'do_this' );

function do_this( $args ) {
echo 'done';
}

我想要做的是在循环内运行它,这样函数就不会被多次写入我想向函数名称添加一个变量。我想做的是这样的:

for( $i=0;$i<=3;$i++ ) :
$obj->runafter( 'do_this_' . $i );

function do_this_{$i}( $args ) {
echo 'done';
}
endfor;

关于如何在 PHP 中完成此操作的任何想法?

最佳答案

我会将函数作为闭包直接传入:

for($i=0; $i<=3; $i++) {
$obj->runafter(function($args) use($i) {
echo "$i is done";
});
}

请注意如何使用($i) 使此局部变量在您的回调中可用(如果需要)。

这是一个工作示例:https://3v4l.org/QV66p

关于可调用对象和闭包的更多信息:

http://php.net/manual/en/language.types.callable.php

关于PHP:如何将变量添加到函数名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36015710/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com