288 votes

Comment convertir un booléen en chaîne

J'ai une variable booléenne que je veux convertir en chaîne de caractères :

$res = true;

J'ai besoin que la valeur convertie soit au format : "true" "false" pas "0" "1"

$converted_res = "true";
$converted_res = "false";

J'ai essayé :

$converted_res = string($res);
$converted_res = String($res);

Mais il me dit que string y String ne sont pas des fonctions reconnues.
Comment puis-je convertir ce booléen en une chaîne de caractères au format de "true" ou "false" en PHP ?

1 votes

Newer use function ( (string) $param [boolean type] ){ if($param){....} } car (string) false => "false" n'est pas false...

412voto

hobodave Points 14566

La solution la plus simple :

$converted_res = $res ? 'true' : 'false';

1 votes

C'est la façon la plus simple de le faire, mais selon l'usage que vous en faites, ce n'est peut-être pas la meilleure solution.

1 votes

@DoomStone Je sais que ça fait 3 ans, mais je voulais juste savoir ce qui vous fait penser que dans certains cas ce n'est pas la meilleure solution. Le site ?: est le code le plus simplifié que nous puissions proposer dans cette situation.

14 votes

@user2443147 le type étant booléen est littéralement le premier fait mentionné dans la question. Si vous n'êtes pas sûr du type auquel vous avez affaire, vous avez un tout autre ensemble de problèmes pour commencer.

232voto

Christian Davén Points 4527

La fonction var_export renvoie une représentation sous forme de chaîne de caractères d'une variable, donc vous pouvez faire ceci :

var_export($res, true);

Le deuxième argument indique à la fonction de retourner la chaîne de caractères au lieu de la renvoyer.

3 votes

Réponse parfaite. C'est la façon "PHP" d'obtenir "...une représentation de chaîne de caractères analysable d'une variable".

37voto

dev-null-dweller Points 19874

Véase var_export

3 votes

Véase Réponse de Christian pour plus de détails. Spécifiquement, inclure le deuxième argument (true).

0 votes

Il s'agit d'une réponse "link-only", qui ne respecte pas les directives de l'OS pour une "réponse". Veuillez consulter edit d'inclure les informations pertinentes du lien dans votre message. Bien que l'information soit utile, il est plus approprié de la laisser en tant que "commentaire" au PO. Toutes les informations nécessaires provenant du lien doivent être intégrées dans la réponse. 1) Si le lien devenait inaccessible, ce message deviendrait inutile. 2) Les visiteurs ne devraient pas être obligés de visiter des liens externes, uniquement pour se débrouiller par eux-mêmes. Cela dit, les liens vers de la documentation, des sources ou des informations supplémentaires sont vivement encouragés. Merci pour votre contribution.

14voto

treznik Points 2514

Vous utilisez strval() ou (string) pour convertir en chaîne de caractères en PHP. Cependant, cela ne convertit pas les booléens en "vrai" ou "faux", vous devez donc le faire vous-même. Voici un exemple de fonction :

function strbool($value)
{
    return $value ? 'true' : 'false';
}
echo strbool(false); // "false"
echo strbool(true); // "true"

0 votes

Si $val = true; puis strval($val) y (string) $val les deux retournent 1.

2voto

Nishchit Dhanani Points 619

USE filter_var() ;

filter_var('true', FILTER_VALIDATE_BOOLEAN); // true filter_var(1, FILTER_VALIDATE_BOOLEAN); // true filter_var('1', FILTER_VALIDATE_BOOLEAN); // true filter_var('on', FILTER_VALIDATE_BOOLEAN); // true filter_var('yes', FILTER_VALIDATE_BOOLEAN); // true filter_var('false', FILTER_VALIDATE_BOOLEAN); // false filter_var(0, FILTER_VALIDATE_BOOLEAN); // false filter_var('0', FILTER_VALIDATE_BOOLEAN); // false filter_var('off', FILTER_VALIDATE_BOOLEAN); // false filter_var('no', FILTER_VALIDATE_BOOLEAN); // false filter_var('ANYthingELSE', FILTER_VALIDATE_BOOLEAN); // false filter_var('', FILTER_VALIDATE_BOOLEAN); // false filter_var(null, FILTER_VALIDATE_BOOLEAN); // false

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