php - 可以在运行时在 php 中将函数分配给类变量吗?

标签 php function-pointers

可以在运行时将要执行的函数分配给类变量吗?一种类似于 C 的“函数指针”

像这样:(这行不通,因为总和超出了 A 的范围,但这是我的意思)

 class A {
    public $function_name;
    public functon run($arg1,$arg2){
        $function_name($arg1,$arg2);
    }
}  

function sum($a,$b){
    echo $a+$b;
}

$a=new A();
$a->function_name='sum';

$a->run();     

[编辑] 我知道有“call_user_func”,但据我所知,它需要在范围内拥有该功能或使用公共(public)类方法

最佳答案

你可以使用 anonymous function如果您使用 PHP >5.3.0:

$sum = function($a, $b) {
    return $a+$b;
}

$a->function_name = $sum;

关于php - 可以在运行时在 php 中将函数分配给类变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8538246/

相关文章:

c++ - 子类查找表

php - 无法让 mysql 查询使用双引号或单引号

javascript - PHP 处理 Jquery $.post()

c++ - std::function 可以用来存储带有可变参数的函数吗

c++ - 向 MPI 进程发送函数

c++ - 如何使指针指向派生类的成员函数

php - 相当于 php shell_exec 的 c++

php - 背景色 <td> + INSERT Mysql

php - 如何创建一个 "forced"灯箱,即一个 "Pause"屏幕及其背后的内容

通过函数指针的 C++ 函数方法