欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-05-31 20:29:55
...
比如,给的例子中有这么一段代码:
$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 闭包

现在很常用的特性了