gpt4 book ai didi

php - 在 PHP 中通过引用传递函数

转载 作者:IT王子 更新时间:2023-10-29 01:24:18 25 4
gpt4 key购买 nike

是否可以通过引用传递函数?

类似这样的:

function call($func){
$func();
}

function test(){
echo "hello world!";
}

call(test);

我知道你可以做 'test',但我真的不想要,因为我需要通过引用传递函数。

是否只有通过匿名函数才能做到这一点?

澄清:如果你记忆一下 C++,你可以通过指针传递一个函数:

void call(void (*func)(void)){
func();
}

或者在 Python 中:

def call(func):
func()

这就是我想要完成的。

最佳答案

为了它的值(value),试试这样的东西怎么样? (是的,我知道这是一个匿名函数在帖子中提到,但我对没有提到闭包/函数的大量回复感到不满-完全没有对象,所以这主要是给在这篇文章中运行的人的注释。)

我不使用 PHP,但是 using a closure似乎在 PHP 5.3(但不是 PHP 5.2)中作为 demonstrated here 工作. 我不确定有什么限制,如果有的话。(据我所知,关闭会吃掉你的 child 。你已被警告过。)

function doIt ($fn) {
echo "doIt\n";
return $fn();
}

function doMe () {
echo "doMe\n";
}

// I am using a closure here.
// There may be a more clever way to "get the function-object" representing a given
// named function, but I do not know what it is. Again, I *don't use PHP* :-)
echo doIt(function () { doMe(); });

编码愉快。

关于php - 在 PHP 中通过引用传递函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6475136/

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