PHP Arrays, Могу ли я определить свой собственный класс Array? - PullRequest
1 голос
/ 05 февраля 2012

Я вижу в PHP 5.3.2 есть класс ArrayObject .Можно ли объявить новый объект с именем Array

, который расширяет ArrayObject .Но я не уверен, является ли ' Array ' зарезервированным ключевым словом или я должен использовать свой собственный префикс, например XArray (), MyArray и т. Д.

Я бы хотел иметь

class Array extends ArrayObject {

...my own code

}

Ответы [ 3 ]

8 голосов
/ 05 февраля 2012

Все, что вам нужно сделать, это попытаться запустить:

<?php class Array {}

И вы увидите:

Parse error: syntax error, unexpected 'Array' 

Так что ответ - нет, вы не можете. Вам нужно будет использовать другое имя.

1 голос
/ 05 февраля 2012

Если это работает прямо сейчас, может случиться так, что в будущем они действительно создадут класс Array. Лучше всего держаться подальше от имен, которые так логично для языка определить.

edit: как указывал Мэтью, это не работает. Увидев его ответ, я понял, почему он не работает: array - это ключевое слово в php (позволяющее сделать массив буквальным), а ключевые слова нечувствительны к регистру в php.

0 голосов
/ 05 февраля 2012

Я не уверен, является ли Array зарезервированным ключевым словом

Это довольно легко проверить. Список зарезервированных ключевых слов PHP имеет "array ()", перечисленные спереди и по центру.

На этой странице также перечислены следующие рекомендации:

Вы не можете использовать любое из следующих слов в качестве констант, имен классов, функций или методов. Обычно их можно использовать в качестве имен переменных, но это может привести к путанице.

Так нет, ты не можешь. Вам нужно переименовать ваш класс во что-то другое, и ваше имя должно отличаться не только буквенным регистром, поскольку имена классов PHP не чувствительны к регистру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...