dpb56083 2018-10-05 01:32
浏览 108
已采纳

PHP当函数作为参数传递时,如何获取函数参数

I want to do something like this:

function func($callback) {
    $result = $callback(???);    // $callback must be called here
    //...
}

//...
func(function(['foo' => 'buu']) {
    $a = func_get_arg(0);

    // do something with $a and return something...    
    return $something;       
})

It is possible in php?

I can do something like below, but this is not what I want to do:

function func($args, $callback) {
    $result = $callback($args);
    //...
}

func(['foo' => 'boo'], function($args) {
     $a = $args; // etc.
})
  • 写回答

1条回答 默认 最新

  • douguang9014 2018-10-05 01:39
    关注

    I use anonymous function this ways :

    $mySuperFunction = function($arg)
    {
        echo ("Hello " . $arg);
    };
    
    function AnotherFunction($args)
    {
        echo ("Another hello " . $args);
    }
    
    function WrappingAnonymous($callback, $args)
    {
        $callback($args);
    }
    
    function WrappingAnonymousWithoutArgs($callback)
    {
        $callback();
    }
    
    WrappingAnonymous($mySuperFunction, "World");
    WrappingAnonymous("AnotherFunction", "World");
    WrappingAnonymous(function($someArgs)
    {
        echo "Yet another Hello " . $someArgs;
    }, "World");
    
    
    WrappingAnonymousWithoutArgs(function($someArgs = "World")
    {
        echo "Now, a 4th other Hello " . $someArgs;
    });
    

    Outputs :

    Hello World

    Another hello World

    Yet another Hello World

    Now, a 4th other Hello World

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

悬赏问题

  • ¥30 在CodBlock上用c++语言运行
  • ¥15 求C6748 IIC EEPROM程序固化烧写算法
  • ¥50 关于#php#的问题,请各位专家解答!
  • ¥15 python 3.8.0版本,安装官方库ibm_db遇到问题,提示找不到ibm_db模块。如何解决?
  • ¥15 TMUXHS4412如何防止静电,
  • ¥30 Metashape软件中如何将建模后的图像中的植被与庄稼点云删除
  • ¥20 机械振动学课后习题求解答
  • ¥15 IEC61850 客户端和服务端的通讯机制
  • ¥15 MAX98357a(关键词-播放音频)
  • ¥15 Linux误删文件,请求帮助
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部