Разница между числовым и строковым значением в PHP - PullRequest
1 голос
/ 10 мая 2010

Я получаю разницу при сравнении двух строк, которые 0 и '0' в PHP. Могу ли я что-нибудь сделать, чтобы их сравнили одинаково в действии if?

Спасибо!

Ответы [ 2 ]

11 голосов
/ 10 мая 2010

Если сравнивать с помощью:

if ('0' == 0) // if '0' is equal to 0

он должен возвращать true, когда значения сравниваются со строкой, конвертируемой в число. Если вы делаете:

if ('0' === 0) // if '0' is identical to 0

он вернет false, поскольку они тоже должны быть одного типа.

Обратите внимание на тройку '='

1 голос
/ 11 мая 2010

Вы также можете заставить их тип быть одинаковым перед сравнением:

if((int)'0' === (int)0) {
    // true
}
if((string)'0' === (string)0) {
    // true
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...