Приведение значения переменной к типу Boolean в PHP

 

PHPсниппет

Приведение значения переменной к типу 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 может значительно упростить процесс разработки, поэтому их обязательно стоит изучить каждому начинающему разработчику.