在匿名函数中设置全局变量的值

Setting a global variable's value inside an anonymous function

提问人:Drew 提问时间:11/2/2020 更新时间:11/2/2020 访问量:183

问:

我正在使用 Goutte 抓取网站。我正在尝试将值设置为匿名函数中的全局变量 , 。$node->text()$myGlobalVar->each(function ($node) {..});

$myGlobalVar = '';

$crawler->filter('.the-link-class')->each(function ($node) {
    if($myGlobalVar == ''){
        print "using first " . $node->text() . "\n";
        $myGlobalVar = $node->text();            
    }
});

print "myGlobalVar: " . $myGlobalVar . "\n"; # always empty !!!!!!

我还尝试了我找到的这个答案中建议的闭包语法。当我修改相关代码时,我收到语法错误。use(&$myGlobalVar)->each(function use(&$myGlobalVar) ($node) {..

PHP 闭包 全局变量 匿名函数

评论


答:

1赞 Sumit Wadhwa 11/2/2020 #1

您的语法无效。

请更改为:

->each(function use(&$myGlobalVar) ($node) {..

自:

->each(function ($node) use(&$myGlobalVar) {..

此外,如果变量是在全局作用域中声明的,则可以使用 global 关键字直接访问和修改变量$myGlobalVar