В одном бите кода, над которым я работаю, мне нужно извлечь значение из базы данных и проверить, есть ли он 0
. Первоначально я написал это как:
if ($myVal == 0) { ...
Но когда я посмотрел на это снова сегодня, я понял там ошибку:
var_dump("foo" == 0); // bool(true)
// and while we're here...
var_dump(intval("foo")); // int(0)
Поскольку это значение исходит из базы данных, обычно означает, что это будет строка, поэтому я предполагаю, что могу это сделать:
if ($myVal === "0")
но он кажется противоречащим интуиции, поскольку я действительно хочу иметь дело с целым числом, и это, как представляется, показывает, что мы работаем со строками. (Я надеюсь, что это имеет смысл для вас.) Кроме того, не должно быть неожиданным, что любой предоставленный DB Accessor выдавал значения их соответствующему типу, учитывая тип поля.
Какой метод вы используете для проверки значения 0, когда это может быть строка или int?