В PHP слишком много назначений считаются плохими? Если да, то почему?
Netbeans, похоже, предполагает, что слишком много назначений довольно плохое и должно быть изменено.
то есть.
$foo = ' bar ';
$foo = trim($foo);
Должен быть лучше закодирован как
$foo = ' bar ';
$trimmed_foo = trim($foo);
Это приемлемо? Если да, то почему? Я знаю, что могу отключить этот конкретный тип подсказки в настройке, но просто проверяю, что кто-то заметил что-то для этого.
Ответы
Ответ 1
Это новое предупреждение, к середине 2012 года.
Поскольку вы использовали пример обрезки, я предполагаю, что вы прочитали этот https://blogs.oracle.com/netbeansphp/entry/several_new_hints, который пытается объяснить это предупреждение. Мое предупреждение - это попытка предупредить вас о случайном повторном использовании переменной. Таким образом, это очень удобно. В обложке вы даете это, кажется, немного тяжело. Если переназначение происходит по строке, это, вероятно, не случайно.
Ответ 2
В идеале имя переменной должно описывать содержимое. Если вы повторно назначаете одну и ту же переменную, это предполагает, что содержимое переменных не определено.
Кроме того, если ваш код имеет что-то вроде этого:
$foo = ' bar ';
// some code, mybe 100 lines of it
// now do something with $foo
Что произойдет, если вы обновите код для добавления $foo = trim($foo);
вверху? Вы нарушаете код ниже.
Ответ 3
Эти варианты не имеют значения. Если что-то первое лучше, потому что это позволяет избежать помех области с переменными.
Я думаю, что на самом деле это означает, что вы должны попытаться сделать
$foo = trim(' bar ');
напрямую (или что-то вроде $foo действительно устанавливается в первую очередь), вместо того, чтобы хранить его во временном. Конечно, это не всегда возможно.
Ответ 4
Если вам не нравится этот подсказку, вы можете просто деактивировать его в Инструменты → Параметры → Редактор → Советы → PHP → Неизменяемые переменные
Ответ 5
IMHO, первый способ подходит для большей производительности, сравнивая вторую.
С другой стороны, второй подход может быть более полезным, если вам нужны более описательные переменные. Также это может помочь, если несколько человек работают над одним проектом.