以下方法不起作用。
$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);
});
答案 0 :(得分:4)
在PHP中,函数外部的变量不可访问(superglobal个变量除外)。
为了访问函数范围之外的变量,您必须告诉函数它应该有权访问它。这是使用use
关键字完成的:
$dir = '/web/source/htm/arc.php'
// no routing
$app->get('/', function() use ($dir) {
return ob(__DIR__ . $dir);
});
答案 1 :(得分:1)
匿名函数在PHP中也称为闭包。这与JavaScript闭包类似,只是封闭的变量不是自动创建的。
这可以通过不隐式导入您不需要的变量来节省内存。
您必须使用use
关键字明确导入这些变量。
$app->get('/', function() use ($dir) {
return ob(__DIR__ . $dir);
});
见这里: