在java中,我们可以创建一个像这样的新范围:
{
//create new scope
{
// create another new scope
}
}
但我是否也可以在PHP中创建新的嵌套范围?
答案 0 :(得分:0)
PHP为整个函数(或必需文件创建范围,如评论中的其他人所述)。您可以通过创建嵌套的匿名函数来模拟嵌套范围:
function scope_outer() {
$outer_a = 'oa';
$outer_b = 'ob';
$inner_a = 'xxx'; // just to check if the nested function overwrites this
// define anonymous function to simulate nested scope and run it right away
(function() use($outer_b) {
$inner_a = 'ia';
var_dump($outer_a); // error, variable not visible in this scope
var_dump($outer_b); // "ob"
var_dump($inner_a); // "ia"
})();
var_dump($inner_a); // "xxx" => nested "scope" did *not* overwrite this variable
}
scope_outer();
玩弄小提琴:http://sandbox.onlinephpfunctions.com/code/7b4449fe47cc48aefa61294883400a42659de4c6