#php #if-statement #while-loop
#php #if-statement #цикл while
Вопрос:
У меня есть 2 цикла while в операторе if then else if, код работает, и все хорошо, но есть небольшой вопрос.
Возьмем мой первый пример, я объявляю в цикле while оператор true для его выполнения,
if ($levelChange > 0) {
while ($levelChange != 0) {
echo '<p>You gained a level you are now ' . ($levelChange $user['level']) . '</p>';
$levelChange--;
}
}
elseif ($levelChange < 0) {
while ($levelChange != 0) {
echo '<p>You just lost a level you are now ' . ($levelChange $user['level']) . '</p>';
$levelChange ;
}
}
И мой второй пример, который я не,
if ($levelChange > 0) {
while ($levelChange) {
echo '<p>You gained a level you are now ' . ($levelChange $user['level']) . '</p>';
$levelChange--;
}
}
elseif ($levelChange < 0) {
while ($levelChange) {
echo '<p>You just lost a level you are now ' . ($levelChange $user['level']) . '</p>';
$levelChange ;
}
}
Они оба работают, но какой из них лучше использовать и почему, также, если кто-нибудь знает, что может быть быстрее, пожалуйста, просветите меня,
Спасибо
Ответ №1:
PHP преобразует свои аргументы в логические значения, где ожидается условный оператор. Для чисел каждое ненулевое значение ( != 0
) оценивается как true . В документах PHP для логического типа есть таблица с правилами преобразования для разных типов.
Следовательно, if($x)
эквивалентно if($x == TRUE)
. Между этими двумя формами нет никакой (измеримой) разницы в производительности.
Комментарии:
1. значит, ноль в php всегда будет false, а любое положительное или отрицательное число будет true?
2. @cgweb87: да, точно. Любое ненулевое число считается истинным.
3. Хорошо, теперь я понимаю, спасибо, тогда я просто использую свои личные предпочтения, еще раз спасибо!
Ответ №2:
В этом случае я бы сказал, что это ваши предпочтения. Я бы, вероятно, использовал сравнение с 0, но это только мое предпочтение, потому что оно немного более подробное для кого-то другого, читающего ваш код. В любом случае производительность не должна сильно меняться.