PHP: просто сказать $ someVariable; внутри функции - делает ли это что-нибудь - PullRequest
2 голосов
/ 21 апреля 2011

Я работаю над некоторым кодом PHP (который я не писал). Здесь и там внутри функций есть такие вещи:

$foo;

if ($someCondition) {
    $foo="some value";
}
return $foo;

Просто проверяю: это первый $ foo; на линии - это никак не влияет, верно?

Ответы [ 6 ]

1 голос
/ 21 апреля 2011

Это код отладки, оставшийся от PHP3 или PHP4 . Эти версии генерировали E_NOTICE для простого упоминания переменной (это был неявный доступ для чтения):

$undef;   // E_NOTICE

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


PHP3: Предупреждение : неинициализированная переменная или индекс или свойство массива (undef)

PHP4: Примечание : неопределенная переменная: undef

PHP5: тишина

0 голосов
/ 21 апреля 2011

Интересно, считают ли они, что это эквивалентно определению переменной для предотвращения ошибок, когда включен строгий отчет об ошибках - хотя на самом деле это не так (определяет переменную), когда она написана так

0 голосов
/ 21 апреля 2011

Я полагаю, это ленивый экземпляр. Я бы изменил строку на $foo = "", что должно иметь такой же эффект;

0 голосов
/ 21 апреля 2011

Правильно, вообще не нужно. В некоторых языках требуется объявить переменную, а не PHP.

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

0 голосов
/ 21 апреля 2011

Это имело бы некоторое влияние, если бы это было:

global $foo;

Но в той форме, которую вы разместили, это не имеет значения.

0 голосов
/ 21 апреля 2011

Ваше право. Возможно, оригинальный разработчик пришел с другого языка и «объявляет» использованные переменные.

Другой способ написать этот фрагмент кода -

if ($someCondition) {
    return "some value";
}

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