Hak*_*iki 3 php closures namespaces
使用PHP 7.0,请考虑以下代码:
<?php
namespace A {
$closure = function() {
echo __NAMESPACE__;
};
}
namespace B {
$closure = function () {
echo __NAMESPACE__;
};
}
namespace C {
$closure();
}
Run Code Online (Sandbox Code Playgroud)
对我来说,预期的输出将是:
PHP Notice: Undefined variable: closure
Run Code Online (Sandbox Code Playgroud)
但是结果是
B
Run Code Online (Sandbox Code Playgroud)
然后考虑以下代码:
<?php
namespace A {
$closure = function() {
echo __NAMESPACE__;
};
}
namespace B {
$closure = function () {
echo __NAMESPACE__;
};
}
namespace C {
\A\$closure();
}
Run Code Online (Sandbox Code Playgroud)
现在知道(但尚未理解)第一个示例的行为,对我的预期输出将是:
A
Run Code Online (Sandbox Code Playgroud)
但是我得到了
PHP Parse error: syntax error, unexpected '$closure' (T_VARIABLE), expecting identifier (T_STRING)
Run Code Online (Sandbox Code Playgroud)
这种行为使我完全困惑。
问题第1部分:有人可以向我解释第一个示例中我的期望有什么问题吗?问题第二部分:行为与第一个示例如何一致?
| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |