valor numerico float entero convertir cast array php integer boolean type-conversion

float - convertir string a numerico en php



Convertir booleano a valor entero php (7)

¿Existe alguna función incorporada para PHP que tome un valor booleano y devuelva su equivalente entero? 0 para FALSO, 1 para VERDADERO? Por supuesto, puede crear fácilmente una función para hacerlo, solo pregunto si hay una función incorporada dentro de PHP. Ya probé intval() y lo intval() a (int) pero no funcionaron, devolvieron 0 en ambos casos de VERDADERO y FALSO.

Edit: el problema era que no era realmente un booleano, era una cadena "false", "true", php no detectó la publicación jquery que pasó un booleano. problema resuelto, gracias!


Puedes hacer varios castings de una sola vez:

echo (int)true; echo ''<br>''; echo (int)false; echo ''<br>''; echo intval(true); echo ''<br>''; echo intval(false); echo ''<br>''; echo true + true;


Si no está seguro del tipo de datos, vea el ejemplo a continuación, funciona en cadenas, enteros y booleanos.

$isTest = ''true''; (int)(bool)$isTest echo $isTest; // this outputs 1

filter_var ($ var, FILTER_VALIDATE_BOOLEAN) devolverá bool (true) o bool (false) y luego se convertirá como entero.

filter_var()

(PHP 5> = 5.2.0, PHP 7)

filter_var - Filtra una variable con un filtro especificado


Si obtiene su valor de JSON IE a través de un AJAX POST, el valor aparecerá como una cadena (como lo ha encontrado). Una forma de evitar esto es comparar la cadena verdadera / falsa y luego convertir el bool a un int

$requestBool = $_REQUEST[''bool_value'']; //This is ''true'' or ''false'' $myInt = (int)($requestBool === ''true''); echo $myInt; //returns: 0 or 1


Solo agrega un "+" antes de tu variable como esta:

$myBool = true; var_dump(+$myBool); ouputs: int(1);


Utilice el tipo de fundición (bool):

var_dump((bool) 1); // bool(true) var_dump((bool) 0); // bool(false)



<?php $options = [ TRUE, FALSE, ''true'', ''false'', 1, 0, ''1'', ''0'', ''on'', ''off'', ''yes'', ''no'' ]; foreach ( $options as $option ) { $bool = filter_var( $option, FILTER_VALIDATE_BOOLEAN ); // TRUE or FALSE print (int) $bool . '' ''; // 1 or 0 } // Outputs: 1 0 1 0 1 0 1 0 1 0 1 0 ?>