У меня есть столбец в таблице базы данных active
, который должен возвращать, подтвердил ли пользователь почту или нет. Это tinyint (1), и если оно установлено 0, и я проверяю его строго против оператора FALSE, он не возвращает TRUE. Я использую ORM для связи с базой данных.Возвращаемые значения из базы данных в исходных типах данных (Kohana ORM)
Это устанавливается в базе данных MySQL:
активный TINYINT (1) Да 0
if ($user->active === FALSE) // returns FALSE
if ($user->active === '0') // returns TRUE
Я искал в API для решения и в классе Database был уже TINYINT тип данных.
Должен ли я использовать == вместо === или есть что-то еще, что я мог бы сделать?
FALSE не идентичен 0! - http://php.net/manual/en/language.operators.comparison.php – nnichols
Да, это так, когда 0 не является целым или строковым, но логическим. Это то, что я хочу сделать - я хочу вернуть значение из базы данных как BOOL, а не строку. –
Не так. Кроме того, вы сказали, что возвращаете данные от TINYINT (1), а не BOOLEAN. В любом случае, MySQL не использует BOOLEAN. Это синоним TINYINT (1). – nnichols