2012-01-13 4 views
2

У меня есть переменная, например $ total1. Он имеет значение из базы данных, например 6.Лучший способ проверить, существует ли переменная до вычитания?

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

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

Вариант 1 заключается в определении переменной $ subtraction_total1 перед циклом while.

Вариант 2 является, чтобы сделать это:

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

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

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

ответ

3

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

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

+0

Я полагаю, что полезно находить равновесие между читаемым/поддерживаемым кодом и коротким и кратким кодом: P – Kieran

2

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

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

1
$sub_total = 0; 
while ($sub = mysql_get_row(...)) { 
    $sub_total += $sub; 
} 

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