Как отличить нуль или "" и 0 в PHP? - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть таблица кодов в базе данных. Один из кодов имеет идентификатор 0.

Я делаю функцию поиска и хочу, чтобы один из фильтров был кодами, но это необязательно. Итак, мне нужно различать «0» и нуль в операторе if.

Вот одна идея, которая выглядит мне так, как будто она будет работать ...

if ( 0 < (int)$input['code'] or false !== strpos($input['code'], "0") ){
    // filter the search with the code
}

Начиная с этого ответа на общий вопрос не так много различий между 0 и нулем. isset() может быть один, но empty() не будет работать. Я не совсем уверен, является ли ввод нулевым или "" после того, как он был обработан, я думаю, что это может быть "". В этом случае isset() также не будет работать.

Есть ли лучший способ провести различие между 0 и нулем / ""?

1 Ответ

0 голосов
/ 27 апреля 2018

Используйте операторы === и !== для такого рода сравнений. Это «строгое» или «верное» сравнение. Эти операторы были придуманы специально для того, чтобы помочь вам в решении проблем сравнения, которые вы описали.

Вас также могут заинтересовать таблицы сравнения PHP . Эта страница документации проходит через множество крайних случаев в равенстве PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...