Spe*_*ark 4 php namespaces reserved-words
最近我开始转换我的框架以使用php命名空间和一个我似乎无法找到答案的问题 - 使用保留字,例如'Object','Array','String'是'合法的' '作为该命名空间中的命名空间和类名?一个例子是:
namespace System\Object;
class String { }
class Array { }
Run Code Online (Sandbox Code Playgroud)
PHP将抛出一个错误:
Parse error: syntax error, unexpected T_ARRAY, expecting T_STRING
Run Code Online (Sandbox Code Playgroud)
如果你试试:
class Array
{
}
$myClass = new Array;
Run Code Online (Sandbox Code Playgroud)
相反,尝试类似的东西
class myArray
{
}
$myClass = new myArray;
Run Code Online (Sandbox Code Playgroud)
[编辑]我会详细说明一下,它们是有原因保留的,因为在上面的第一个场景中,PHP无法区分定义数组或初始化同名的类,所以它抛出一个错误.例如,在MySQL中没有办法解决这个问题,你可以用反引号来逃避保留字.所以在PHP中你被迫改变名字,你不必改变它,只要你没有使用与保留字完全相同的名字,就会有一个字符.
希望有所帮助!
| 归档时间: |
|
| 查看次数: |
4918 次 |
| 最近记录: |