PHP保留字作为命名空间和类名

时间:2012-08-03 08:28:48

标签: php namespaces reserved-words

最近我开始转换我的框架以使用php命名空间和一个我似乎无法找到答案的问题 - 使用保留字如“对象”,“数组”是否“合法” ,'String'作为该命名空间中的命名空间和类名?一个例子是:

namespace System\Object;


class String { }

class Array { }

1 个答案:

答案 0 :(得分:9)

PHP会抛出错误,如:

Parse error: syntax error, unexpected T_ARRAY, expecting T_STRING

如果您尝试:

class Array
{

}
$myClass = new Array;

相反,尝试类似

的内容
class myArray
{

}
$myClass = new myArray;

[edit]我会详细说明一点,它们是有原因保留的,因为在上面的第一个场景中,PHP无法区分你定义一个数组或初始化一个类的同名,所以它会抛出一个错误。例如,在MySQL中没有办法解决这个问题,你可以用反引号来逃避保留字。因此在PHP中你被迫改变名称,你不必更改它,只要你没有使用与保留字完全相同的名字,就会有一个字符。

希望有所帮助!