#php #oop #syntax
#php #ооп #синтаксис
Вопрос:
Незаконно ли в PHP иметь класс с именем
class foo.bar{
}
Я получаю ошибки, которые говорят, что {
ожидается вместо .
есть ли работа с конфигурацией для этого или ошибка говорит о чем-то другом?
Комментарии:
1. Это недопустимый идентификатор / синтаксис. И на этот раз нет
php.ini
настройки, чтобы изменить это.
Ответ №1:
Из руководства:
Допустимое имя класса начинается с буквы или подчеркивания, за которым следует любое количество букв, цифр или подчеркиваний.
Точки недопустимы, и вы не можете изменить какие-либо настройки, чтобы сделать их допустимыми.
Ответ №2:
В именах классов точки недопустимы. Точка.
Ответ №3:
В именах классов PHP не может быть точек.Обойти это невозможно.
Ответ №4:
Точка .
является оператором конкатенации строк, поэтому она не допускается нигде в идентификаторе.
Ответ №5:
Точка не допускается, как задокументировано: http://php.net/manual/en/language.oop5.basic.php
Ответ №6:
Точки не допускаются.
Именем класса может быть любая допустимая метка, которая не является зарезервированным словом PHP. Допустимое имя класса начинается с буквы или подчеркивания, за которым следует любое количество букв, цифр или подчеркиваний. В качестве регулярного выражения это было бы выражено следующим образом: [a-zA-Z_x7f- xff][a-zA-Z0-9_x7f- xff] *.
Бесстыдство вырвано отсюда.
Ответ №7:
Да, точки не допускаются в имени класса и пространствах имен, как указано во многих ответах ниже.. Однако, если вам критически необходимо использовать точки и ничто другое не подходит для вашего случая, тогда используйте «U 2024». По сути, это почти такая же точка, но считается буквой.
. <- Regular dot
․ <- U 2024
namespace mynamespacewith.dot (Error)
namespace mynamespacewith․dot (Ok)
Примечание 1: Это решение не является хорошей практикой, поэтому используйте его в качестве последнего средства.
Примечание 2: Вы можете получить предупреждение от вашей IDE об использовании этого символа, но вы можете просто скрыть его.
Примечание 3: Я не рекомендую ее использовать, не позорь меня.