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
