(PHP 5 >= 5.5.0, PHP 7, PHP 8)
boolval — Récupère la valeur booléenne d'une variable
Retourne la valeur booléen de la variable fournie dans le
paramètre value.
valueLa valeur scalaire qui sera convertie en booléen.
La valeur booléen du paramètre value.
Exemple #1 Exemple avec boolval()
<?php
echo '0: '.(boolval(0) ? 'true' : 'false')."\n";
echo '42: '.(boolval(42) ? 'true' : 'false')."\n";
echo '0.0: '.(boolval(0.0) ? 'true' : 'false')."\n";
echo '4.2: '.(boolval(4.2) ? 'true' : 'false')."\n";
echo '"": '.(boolval("") ? 'true' : 'false')."\n";
echo '"string": '.(boolval("string") ? 'true' : 'false')."\n";
echo '"0": '.(boolval("0") ? 'true' : 'false')."\n";
echo '"1": '.(boolval("1") ? 'true' : 'false')."\n";
echo '[1, 2]: '.(boolval([1, 2]) ? 'true' : 'false')."\n";
echo '[]: '.(boolval([]) ? 'true' : 'false')."\n";
echo 'stdClass: '.(boolval(new stdClass) ? 'true' : 'false')."\n";
?>L'exemple ci-dessus va afficher :
0: false 42: true 0.0: false 4.2: true "": false "string": true "0": false "1": true [1, 2]: true []: false stdClass: true
To anyone like me who came here looking for a way to turn any value into a 0/1 that will fit into a MySQL boolean (tinyint) field:
<?php
$tinyint = (int) filter_var($valToCheck, FILTER_VALIDATE_BOOLEAN);
?>
tinyint will be 0 (zero) for values like string "false", boolean false, int 0
tinyint will be 1 for values like string "true", boolean true, int 1
Useful if you are accepting data that might be from a language like Javascript that sends string "false" for a boolean false.<?
// Hack for old php versions to use boolval()
if (!function_exists('boolval')) {
function boolval($val) {
return (bool) $val;
}
}
?>function is_true($val, $return_null=false){
$boolval = ( is_string($val) ? filter_var($val, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE) : (bool) $val );
return ( $boolval===null && !$return_null ? false : $boolval );
}
// Return Values:
is_true(new stdClass); // true
is_true([1,2]); // true
is_true([1]); // true
is_true([0]); // true
is_true(42); // true
is_true(-42); // true
is_true('true'); // true
is_true('on') // true
is_true('off') // false
is_true('yes') // true
is_true('no') // false
is_true('ja') // false
is_true('nein') // false
is_true('1'); // true
is_true(NULL); // false
is_true(0); // false
is_true('false'); // false
is_true('string'); // false
is_true('0.0'); // false
is_true('4.2'); // false
is_true('0'); // false
is_true(''); // false
is_true([]); // falseI believe that the double negation !! can perform the same task with the same result if your PHP is not up2date
var_dump(!!1, !!0, !!"test", !!"");
outputs:
boolean true
boolean false
boolean true
boolean false
May the life be good to you.<?
// Some way to print boolean value as string
$b = true;
echo ['false', 'true'][$b];
?>