【发布时间】:2012-02-27 02:25:48
【问题描述】:
我可以看到在 PHP 5.3.2 中有一个 ArrayObject 类。是否可以声明一个名为 Array 的新对象
扩展了 ArrayObject。但我不确定 'Array' 是否是保留关键字,或者我应该使用自己的前缀,即 XArray()、MyArray 等...
我想要的是
class Array extends ArrayObject {
...my own code
}
【问题讨论】:
我可以看到在 PHP 5.3.2 中有一个 ArrayObject 类。是否可以声明一个名为 Array 的新对象
扩展了 ArrayObject。但我不确定 'Array' 是否是保留关键字,或者我应该使用自己的前缀,即 XArray()、MyArray 等...
我想要的是
class Array extends ArrayObject {
...my own code
}
【问题讨论】:
我不确定 'Array' 是否是保留关键字
这很容易检查。 PHP's list of reserved keywords 在前面和中间列出了“array()”。
该页面还列出了以下指南:
您不能使用以下任何单词作为常量、类名、函数或方法名。将它们用作变量名通常是可以的,但可能会导致混淆。
所以不,你不能。您需要将您的类重命名为其他名称,并且您的名称不能仅区分大小写,因为 PHP 类名不区分大小写。
【讨论】:
如果它现在可以工作,那么他们将来可能会创建一个Array 类。最好不要使用明显符合语言定义的名称。
edit:正如 Matthew 指出的那样,它不起作用。看到他的回答让我意识到为什么它不起作用:array 是 php 中的关键字(允许您制作数组文字),而关键字在 php 中不区分大小写。
【讨论】:
您所要做的就是尝试运行:
<?php class Array {}
你会看到:
Parse error: syntax error, unexpected 'Array'
所以答案是,不,你不能。您需要使用不同的名称。
【讨论】: