Приведение значения переменной к типу Boolean является распространённой задачей при разработке на языке PHP. Однако в ряде случаев, выполнения простого приведения типа может быть недостаточно.
Например, переменная, содержащая строковое значение 'false'
, при приведении её типа к Boolean, будет иметь значение TRUE
:
$var = 'false';
$var = (bool)$var;
Использование такого метода приведение типов может послужить причиной появления ошибок в работе приложения, поэтому необходимо чётко понимать и учитывать результат выполнеия приведения типов в PHP в зависимости от содержания приводимой переменной. Прочитать подробнее о приведении типов в PHP можно здесь.
В качестве альтернативы рассмотренного метода приведения типа переменной к Boolean, может являться написание собственной функции, возвращающей значения TRUE
или FALSE
в зависимости от значения переданной переменной, что востребовано при выполнении специализированных задач, либо использование фильтрации данных.
В конкретном случае, интерес представляет функция filter_var, фильтрующая переменную с помощью заданного фильтра. Для фильтрации (валидации) значения переменной с целью получения значения типа Boolean, следует использовать следующий PHP-код:
$var = 'false';
$var = filter_var($var, FILTER_VALIDATE_BOOLEAN);
В результате выполнения приведённого кода, переменной $var
будет присвоено значение типа Boolean, равное FALSE
. Используя фильтр валидации данных FILTER_VALIDATE_BOOLEAN
, возвращаемое значение равно TRUE
для проверяемых значений равных '1'
, 'true'
, 'on'
и 'yes'
(скалярные значения предварительно приводятся к строковым). В остальных случаях, возвращаемое значение равно FALSE
.
Как видно, использование встроенных возможностей фильтрации в PHP может значительно упростить процесс разработки, поэтому их обязательно стоит изучить каждому начинающему разработчику.