WorkerMan中的function后面的use是什么意思?

原创
2016-08-04 09:19:47 1019浏览

比如,给的例子中有这么一段代码:

$recv_worker->onMessage = function($connection, $data)use($recv_worker)
{
    foreach($recv_worker->sendWorker->connections as $send_connection)
    {
        //$send_connection->websocketType = "\x82";
        $send_connection->send($data);
    }
};

这里的:function($connection, $data)use($recv_worker)
为什么function后面可以跟use,而不是直接写函数体{}?

另外,...=function(){} 这种回调函数是怎么实现的?只要js中看到有类似的用法,但在php中以前好像没有看到这种用法。

回复内容:

比如,给的例子中有这么一段代码:

$recv_worker->onMessage = function($connection, $data)use($recv_worker)
{
    foreach($recv_worker->sendWorker->connections as $send_connection)
    {
        //$send_connection->websocketType = "\x82";
        $send_connection->send($data);
    }
};

这里的:function($connection, $data)use($recv_worker)
为什么function后面可以跟use,而不是直接写函数体{}?

另外,...=function(){} 这种回调函数是怎么实现的?只要js中看到有类似的用法,但在php中以前好像没有看到这种用法。

那玩意儿叫匿名函数
http://www.php.net/manual/zh/...
可以先看看官方说明...确实js里常见...这是php5.3后的特性
use是用来向匿名函数或者也叫闭包传入外部产量用的

可能暂时题主接触的web框架用这种的地方不多吧...

php 闭包

现在很常用的特性了

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。