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