提问人:Drew 提问时间:11/2/2020 更新时间:11/2/2020 访问量:183
在匿名函数中设置全局变量的值
Setting a global variable's value inside an anonymous function
问:
我正在使用 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) {..
答:
1赞
Sumit Wadhwa
11/2/2020
#1
您的语法无效。
请更改为:
->each(function use(&$myGlobalVar) ($node) {..
自:
->each(function ($node) use(&$myGlobalVar) {..
此外,如果变量是在全局作用域中声明的,则可以使用 global 关键字直接访问和修改变量$myGlobalVar
评论