gpt4 book ai didi

stdClass下的PHP调用闭包

转载 作者:行者123 更新时间:2023-12-04 02:24:48 25 4
gpt4 key购买 nike

这就是我所拥有的

$x = new \stdClass();
$x->cast = function($y){
return $y;
};

当我尝试执行它时
$x->cast(5);

我收到这个错误

Fatal error: Call to undefined method stdClass::cast()



我该如何解决?

最佳答案

问题是您正在定义一个变量并在您的 stdClass 中为其分配一个闭包函数

如果您想了解为什么调用$x->cast(5);不起作用,这是因为 PHP 正在寻找名为“cast”的类的方法,但没有这样的方法,而只有一个名为“cast”的变量,变量和方法对于 PHP 来说是两个不同的东西

因此,对于您想要实现的工作,您需要调用(仅限 PHP 7+ 语法)

($x->cast)(5);

或者对于 PHP 5.3+

$x->cast->__invoke(5)

告诉编译器你首先要访问变量(返回闭包),然后用参数 5 调用这个闭包

关于stdClass下的PHP调用闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23120859/

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