PHP:有可能像C++那样回调吗



我不确定这在PHP中是否可能…

我基本上想要

// A.php
class A {
public static function foo(int a, string b) {
//…//
}
}

赋予另一类中的另一个函数但是其他类不应该知道A类,也不应该包括它,而是只指定这样的东西…

// B.php
class B {
public static function doSomething(callable $fn) {
$fn(1,'test'); //<-error
}
}

目前我得到错误";A类";当我用调用它时没有找到

include_once('A.php');
include_once('B.php');
B::doSomething('A::foo');

PHP可以进行回调,但我不确定是否可以通过类名进行回调。

这里有一个非常简单的例子:

function Test($mystring) {return "MY STRING = ".$myString;}
function CallMyFunction($functionname,$mydata) 
{
echo $functionname($mydata);
}
CallMyFunction('Test',"Hello World!");

更多信息请点击此处:https://www.w3schools.com/php/php_callback_functions.asp

线索是,它似乎在被调用类的上下文中进行字符串到函数的解析,因此调用

B::doSomething([A::class, 'foo']);

在上下文中执行,其中A是known。至少这是我的理解:D

最新更新