Как перенаправить пользователей с помощью .htaccess?

"ABC" == 0

оценивает true, потому что "ABC" преобразуется в целое число и становится 0, тогда его сравнивают с 0.

Это странное поведение языка PHP: обычно можно ожидать, что 0 будет переведен в строку "0", а затем сравним с "ABC" с результатом false. Возможно, это то, что происходит на других языках, таких как JavaScript, где слабое сравнение "ABC" == 0 оценивает false.

Выполнение строгого сравнения решает проблему:

"ABC" === 0

оценивает false .

Но что, если мне нужно сравнивать числа как строки с числами?

"123" === 123

оценивает false, потому что левое и правое члены имеют разный тип.

На самом деле нужно слабое сравнение без ловушек жонглирования типа PHP.

Решение заключается в явном продвижении терминов в строку, а затем сравнение (строгое или слабое не имеет значения

(string)"123" === (string)123

-

true

, а

(string)"123" === (string)0

-

false


Применяется к исходному коду:

$item['price'] = 0;
/*code to get item information goes in here*/
if((string)$item['price'] == 'e') {
    $item['price'] = -1;
}
1
задан NTR 18 January 2019 в 16:10
поделиться