3 votes

Conversion en valeur booléenne en PHP

Duplicata possible :
Comment convertir un booléen en chaîne

Je pense que cette question est peut-être un peu idiote mais je me demande s'il existe un moyen intégré de renvoyer false ou true comme ils se présentent au lieu de 0 ou 1. En fait, ce code n'écrit même pas 0 mais 1 :

<?php
$array = array(1,2,3);
echo (bool) $array;
?>

Je veux donc que ce code écrive "vrai" ou "faux" au lieu de valeurs numériques. Je sais que je peux construire une fonction mais ma curiosité est d'apprendre une méthode intégrée si elle existe.

7voto

TimWolla Points 11210

Il suffit d'utiliser le opérateur conditionnel :

echo (true ? 'true' : 'false');
echo (false ? 'true' : 'false');

Démonstration : http://codepad.org/hNHhXnBv

5voto

Second Rikudo Points 59550

echo Un booléen affichera toujours 0 ou 1. Au lieu de cela, utilisez var_dump() .

Une autre option consiste à renvoyer un message "vrai" ou "faux" en fonction de la valeur :

echo ((bool)$array) ? 'true' : 'false'

1voto

powtac Points 18619

Var_export() imprime le type et le résultat.

echo var_export((bool)$array, 1);

0voto

max.weller Points 987

Je pense que le problème principal est de convertir les ELEMENTS du tableau en booléens, et non le tableau dans son ensemble.

Vous pouvez utiliser la fonction array_map pour ça.

function conv2bool($i) { return (bool) $i; }

$int_array = array(0,1,0,2,3);
$bool_array = array_map("conv2bool", $int_array);

var_dump($bool_array);

...cela reviendra :

array(5) { [0]=> bool(false) [1]=> bool(true) [2]=> bool(false) [3]=> bool(true) [4]=> bool(true) }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X