PHP获取方法范围之外的变量
我有这样一门课(举个简单的例子):PHP获取方法范围之外的变量,php,scope,anonymous-function,Php,Scope,Anonymous Function,我有这样一门课(举个简单的例子): 您缺少use语句。请参考PHP关于闭包的第三个示例 这将有助于: <?php class Test { public function test1($a) { $gen = function() use ($a) { $gen = function() use($a) { echo 'a='. $a; // how could i access $a from test1 parameter without pa
您缺少use
语句。请参考PHP关于闭包的第三个示例
这将有助于:
<?php
class Test {
public function test1($a) {
$gen = function() use ($a) {
$gen = function() use($a) {
echo 'a='. $a; // how could i access $a from test1 parameter without passing?
};
$gen();
};
$gen();
}
};
$x = new Test();
$x->test1(123);
您缺少use
语句。请参考PHP关于闭包的第三个示例
这将有助于:
<?php
class Test {
public function test1($a) {
$gen = function() use ($a) {
$gen = function() use($a) {
echo 'a='. $a; // how could i access $a from test1 parameter without passing?
};
$gen();
};
$gen();
}
};
$x = new Test();
$x->test1(123);
PHP中的匿名函数不像JavaScript那样具有隐式变量作用域,因此需要指定需要父作用域中的哪些变量。您可以使用使用语法执行此操作:
$var = 123;
$fn = function() use ($var) {
// you can use $var here
}
$fn();
另请参见:PHP中的匿名函数不像JavaScript那样具有隐式变量作用域,因此需要指定需要父作用域中的哪些变量。您可以使用使用语法执行此操作:
$var = 123;
$fn = function() use ($var) {
// you can use $var here
}
$fn();
另请参见:我不明白为什么您只想通过syntaxtic而不通过它来访问它sugar@KiswonoPrayogo此代码不会为函数设置值123
。参见示例是的,它不是。。下面的答案是我想要的:3谢谢不管怎样,如果我通过$a,我将不得不使用use关键字键入4次,我只需要写两次:3这是我一直在寻找的一个。我很困惑,为什么你会想访问它,而不只是为了语法sugar@KiswonoPrayogo此代码不会为函数设置值123
。参见示例是的,它不是。。下面的答案是我想要的:3谢谢不管怎样,如果我通过$a,我将不得不键入4次,使用use关键字,我只需要写2次:3这是我一直在寻找的一个