У меня есть следующий фрагмент кода:
$item['price'] = 0;
/*code to get item information goes in here*/
if($item['price'] == 'e') {
$item['price'] = -1;
}
Он предназначен для инициализации цены элемента на 0, а затем для получения информации о нем. Если цена указана как «e», это означает обмен вместо продажи, которая сохраняется в базе данных как отрицательное число.
Также существует возможность оставить цену равной 0, либо потому, что товар является бонус или потому, что цена будет установлена позже.
Но если цена не установлена, что оставляет ее с начальным значением 0, цикл if
, указанный выше, оценивается как истина и цена установлена на -1. То есть он считает 0 равным «е».
Как это можно объяснить?
Редактировать: Когда цена указывается как 0 (после инициализации), поведение неустойчиво: иногда if оценивается как истина, иногда как ложь.