PHP – Conversiones – Bool
Función que convierte un valor SI/NO, YES/NO, Y/S, S/N, 1/0 a Bool.
Si el valor esta vació o no se puede convertir devuelve null.
/** * Class HelperArray */ abstract class HelperConvert { /** * Transforma un string SI/NO-YES/NO-Y/S-S/N-1/0 a bool. * Si el valor está vacío o null, devuelve null. * Devuelve null si no se puede convertir a true o false. * * @param string $str_bool * * @return bool * @see validIsEmpty() * @since 20/09/2020 */ public static function toBool($str_bool) { $ret = -1; if (HelperValidate::isEmpty($str_bool)) { $ret = null; } else { if (is_string($str_bool)) { $name = strtolower(strtr($str_bool, 'ÍÓíó', 'ioio')); $sn = preg_replace('/^[:alnum:]/ui', '', strtoupper(trim($name))); if ( $sn == 'S' || $sn == 'Y' || $sn == 'SI' || $sn == 'YES' || $sn == '1') { $ret = true; } else { if ($sn == 'N' || $sn == 'NO' || $sn == '0') { $ret = false; } else { $ret = null; } } } else { if (is_numeric($str_bool)) { if ($str_bool === 1) { $ret = true; } else { if ($str_bool === 0) { $ret = false; } else { $ret = null; } } } else { if (is_bool($str_bool)) { return $str_bool; } } } } return $ret; } }
Funciones utilizadas
- HelperValidate::isEmpty : Comprobar si una variable esta vacía