2015-07-15 2 views
-1

Мне любопытно мнение людей о конкретном случае повторного использования переменных PHP.Повторное использование переменных PHP

Когда взрываются через запятую строку (при условии, что сама переменная $ имена приходит откуда-то еще и не используется для чего-нибудь еще позже):

$names = 'Bob,Jim,Carol'; 
$nameArray = explode($names); 
foreach ($nameArray as $name) { // etc. } 

Versus:

$names = 'Bob,Jim,Carol'; 
$names = explode($names); 
foreach ($names as $name) { // etc. } 

Вторая версия быстрее записывается и менее подвержена опечаткам, imo, но вы можете утверждать, что первая версия более читаема. Предположительно, PHP должен выполнить некоторую дополнительную работу для преобразования строковой переменной в переменную массива во второй версии, но она использует меньше переменных.

Эксплуатационные характеристики, вероятно, не являются проблемой. У людей есть сильное предпочтение одному методу над другим?

+0

* мнение людей * -> SO вне темы. SO не является форумом, это сайт вопросов и ответов. – Rizier123

+0

@ Rizier123 Может существовать отраслевой стандарт (насколько мне известно, это не так), что ставит вопрос не только в отношении мнений людей, но и в действительности затрагивающих, например, поиск работы или подобное. – chelmertz

+0

@chelmertz OP явно просит мнения людей, поэтому это может привести только к дискуссиям и мнениям, которые просто не соответствуют теме – Rizier123

ответ

1

Технически это нормально.

Однако я все же считаю это плохой практикой, поскольку это может вызвать путаницу среди других разработчиков (или даже самого себя), которые смотрят на код на более поздний момент времени.

Я лично предпочитаю использовать более короткое имя для более важной переменной, то есть той, которая используется чаще в следующих строках кода. Если массив более важен, я бы дал строке имя namesStr.

1

Я бы сказал, что это вопрос стиля. В некоторых местах это может быть хорошо, в некоторых не так много. Но зачем останавливаться там - вы можете использовать еще другой код

<?php 

$names = 'Bob,Jim,Carol'; 
foreach (explode(',', $names) as $name) { 
    echo $name . PHP_EOL; 
} 

И для некоторых это будет выглядеть плохо, для некоторого пользы.

1

Я использую их оба. В первом примере вы могли бы дать первой переменной подробное имя вместо применения комментария где-нибудь.

Я бы использовал второй пример, если первая переменная слишком длинная, чтобы поместиться в одну строку (если $names = explode(',', 'Bob,Jim,Carol,...,...,...'); становится длинной).

В вашем простом случае, я бы написать

foreach(explode(',', array('Bob,Jim,Carol')) as $name) { .. 

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

Моя общая мысль состоит в том, чтобы избежать ненужных переменных (которые используются только один раз), пока код не выглядит странным, что является очень субъективным, возможно, из-за слишком большого количества парсеров или слишком длинных строк.

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