dphphvs496524 2012-06-26 22:42
浏览 36
已采纳

php闭包实例5.3

This a little hard for me to explain, but I'll try my best. I'm trying to find the best way to create an instance of a closure. Below is an example of how I am creating and accessing the closure:

$myvar->parse('var1, var2', function () {
  //my code
});

I then loop through the strings by exploding the comma and put it into an array like so.

$array = array();
$array['var1'] = closure();
$array['var2'] = closure();

Later on in my code I use call_user_func to execute the function.

Now, the issue I'm having is that when I access $array['var1'] it calls the closure without any problem.

But when I access $array['var2'] it does nothing. I've been looking at diverse websites for a while without much luck. Do I need to use pointers (tried without success) or create a new instance of it somehow?

I currently only have access to php 5.3 on my server, so I can't use any of the awesome stuff in 5.4 :(

I'd really appreciate any feedback and advice you may have.

  • 写回答

2条回答 默认 最新

  • dras2334 2012-06-26 22:46
    关注

    Yes your question isn't clear. You knew it so I wonder why you didn't explained better.

    Anyway if you need to run a closure stored inside $array['var2'] you have to specifically put in your code something like this:

    $array['var2'] = function(){
    //> Code
    };
    

    That's the only way

    By guessing at your code, your function parse should like:

    function parse($keys,$func) {
     $array = array();
     foreach(explode(',',$keys) as $v) {
       $array[trim($v)] = $func;  //> trim important here!
     }
    }
    

    Most likely you have forgot to trim($v)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教