如何将值传递给匿名函数?
How to pass a value to an anonymous function?
下面的方法无效。
$dir = '/web/source/htm/arc.php'
// no routing
$app->get('/', function() {
return ob(__DIR__ . $dir);
});
在JavaScript中,函数可以访问$dir(当然在JS语法中),但在PHP中它似乎不起作用。
我也试过了
// no routing
$app->get('/', function($dir) {
return ob(__DIR__ . $dir);
});
在 PHP 中,函数外部的变量在内部不可访问(superglobal 变量除外)。
为了访问函数范围之外的变量,您必须告诉函数它应该可以访问它。这是使用 use
关键字完成的:
$dir = '/web/source/htm/arc.php'
// no routing
$app->get('/', function() use ($dir) {
return ob(__DIR__ . $dir);
});
匿名函数在 PHP 中也称为闭包。这类似于 JavaScript 闭包,只是封闭的变量不是自动创建的。
这通过不隐式导入不需要的变量来节省内存。
您必须使用 use
关键字显式导入这些变量。
$app->get('/', function() use ($dir) {
return ob(__DIR__ . $dir);
});
看这里:
下面的方法无效。
$dir = '/web/source/htm/arc.php'
// no routing
$app->get('/', function() {
return ob(__DIR__ . $dir);
});
在JavaScript中,函数可以访问$dir(当然在JS语法中),但在PHP中它似乎不起作用。
我也试过了
// no routing
$app->get('/', function($dir) {
return ob(__DIR__ . $dir);
});
在 PHP 中,函数外部的变量在内部不可访问(superglobal 变量除外)。
为了访问函数范围之外的变量,您必须告诉函数它应该可以访问它。这是使用 use
关键字完成的:
$dir = '/web/source/htm/arc.php'
// no routing
$app->get('/', function() use ($dir) {
return ob(__DIR__ . $dir);
});
匿名函数在 PHP 中也称为闭包。这类似于 JavaScript 闭包,只是封闭的变量不是自动创建的。
这通过不隐式导入不需要的变量来节省内存。
您必须使用 use
关键字显式导入这些变量。
$app->get('/', function() use ($dir) {
return ob(__DIR__ . $dir);
});
看这里: