Лучший способ проверить, существует ли переменная до вычитания? - PullRequest
2 голосов
/ 13 января 2012

У меня есть переменная, например, $ total1.Он имеет значение из базы данных, например 6.

Теперь я делаю SQL-запрос, и он получает некоторые числа из таблиц.Например, это: $ subtraction1 = 5, но он находится в цикле while, поэтому во второй раз это может быть $ subtraction1 = 10 или что-то в этом роде.Каждый раз в цикле while переменная $ subtraction_total будет $ subtraction_total1 + $ subtraction1, потому что в нижней части страницы я хотел бы показать сумму $ минус $ subtraction_total1.

Но впервые в то времяЦикл Я должен проверить, существует ли $ subtraction_total.Я знаю, как это сделать, но есть ли более короткий путь?

Вариант 1 - определить переменную $ subtraction_total1 перед циклом while.

Вариант 2 - это сделать:

(!isset($total_subtraction1)){$total_subtraction1=0;}$total_subtraction1=$total1-$subtraction1;

Теперь вы думаете: ну, просто сделайте вариант 1: определите 1 переменную, но она примерно для 15 переменных, и мне просто интересно, есть ли более короткий путь; -)

Надеждаты меня понимаешь, мой английский не очень хорош; -)

Ответы [ 3 ]

3 голосов
/ 13 января 2012

Определите и инициализируйте все переменные перед использованием .Я думаю, что из этого логически вытекает вариант 1.

Не пытайтесь писать короткий, быстрый или хитрый код.Напишите код, который легко читать и поддерживать.

2 голосов
/ 13 января 2012

Я бы определенно рекомендовал определить переменную (и) перед циклом.Повторный вызов isset (или любой другой функции) снова и снова внутри цикла бесполезен, если та же функциональность может быть достигнута перед циклом.

Если вы просто хотите определить большое количество переменных безПри необходимости явного объявления каждого перед циклом вы можете попробовать list docs или программно создать переменные в цикле.

1 голос
/ 13 января 2012
$sub_total = 0;
while ($sub = mysql_get_row(...)) {
  $sub_total += $sub;
}

Таким образом, вы не выполняете один и тот же код снова на каждой итерации (что является хорошей практикой и хорошей производительностью), и у него есть дополнительное преимущество, заключающееся в том, что если у вас нет результата из mysql, $ sub_total определяется с значением по умолчанию значение.

...