2015-05-26 4 views
2

Я знаю, что по умолчанию - это зарезервированное ключевое слово в PHP. Я подошел к этой странной ситуации, когда я хотел назвать свой класс По умолчанию, но кажется, что всякий раз, когда я пытаюсь создать его в любом месте в коде, вся моя страница становится пустой, а PHP не показывает никаких ошибок. Это просто сбивает с толку, и я потратил более 20 минут на поиск проблемы в своем коде. Потому что меня это раздражает, я хочу знать, что с этим не так.PHP - Создание класса с именем 'По умолчанию'

(я пробовал даже с разными пространствами имен, но по-прежнему тот же эффект, к примеру :)

new \SomeNamespace\Default(); 

Может кто-нибудь объяснить мне, почему это происходит, и нет каких-либо ошибок появляется? Это просто недостаток PHP, с которым мы должны жить?

+3

_my вся страница становится пустой и PHP не показывает никакой ошибки_ - Включить 'display_errors' – Federkun

+3

Это синтаксическая ошибка, поэтому нет выхода. Проверьте журнал ошибок PHP. – Barmar

+4

Просто из любопытства, почему вы хотите назвать свой класс «По умолчанию»? Помимо того, что это ключевое слово, что он делает? Не следует ли его называть «DefaultSettings», «DefaultController», «DefaultCustomer» или что-то еще? – GolezTrol

ответ

1

http://php.net/manual/en/reserved.keywords.php

Эти слова имеют особое значение в PHP. Некоторые из них представляют собой вещи, которые выглядят как функции, некоторые из них похожи на константы и т. Д. - но это не так: они - языковые конструкции. Вы не можете использовать любое из следующих слов как константы, имена классов, имена функций или методов. Использование их в качестве имен переменных обычно хорошо, но может привести к путанице.

Просто нет нет. Невозможно, чтобы ваш сценарий выводил ошибки или нет. Попробуйте назвать свой класс более содержательным существительным.

+0

Да, это правильно ... Я переименую его в нечто другое. Я обнаружил ошибку в журналах, поэтому не забудьте проверить ее чаще. Спасибо за помощь ребятам;) – adamuso

+0

На самом деле вы можете назвать метод класса 'public function default() {}' –

+0

Привет. Да, вы можете сделать это сейчас, но с PHP 7.0+. – kba

Смежные вопросы