Одинаковые имена функций и классов в PHP - PullRequest
0 голосов
/ 11 июля 2011

Существуют ли обстоятельства, при которых классы и функции с одинаковыми именами в PHP могут конфликтовать или вызывать какие-либо проблемы? Например:

function Foobar(){
    // ...
}

class Foobar{
    // ...
}

Беглое тестирование показывает, что PHP может различать их в зависимости от контекста.

1 Ответ

5 голосов
/ 11 июля 2011

Нет, они никогда не сталкиваются. Но:

Не делай этого.

Если вы сделаете это, вы запутаете всех, потому что я не ожидал, что там будет функция и класс с одним и тем же именем. Многие даже не знают, что это законно.

Когда я вижу заглавные буквы В PHP (первая буква) я предполагаю, что это класс. Если вы поместите () вокруг него, I будет знать, что это функция. Но я бы не предположил, что есть класс с таким же именем. Все, что вы делаете, это путаете людей. Кто-то может подумать: «Круто, я не знал, что вы можете опустить new». Я не знаю, каковы ваши намерения, но если это избавиться от ключевого слова new - и только это - это очень плохо. Я предполагаю, что вы делаете больше , чем просто это, и пойдете проверить, что на самом деле делает эта функция, и я разозлюсь, если узнаю, что она ничего не делает, кроме возвращения нового экземпляра без каких-либо действий ... Я просто зря потратил время на поиск функции, которая ничего не делает ... .

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