le "vrai" dans des variables
En PHP, quand vous avez quelque chose dans l'URL comme "var=true" dans l'URL, le 'vrai' et 'faux' dans l'URL traduit de variables booléennes, ou font-ils l'égalité le texte 'true' ou 'false'? Par exemple, ce serait avec l'url d'avoir "var=false" dans:
if ($_GET['var'] == false) { ... }
travail? Ou serait la variable de toujours être vrai puisque c'est le texte?
Pourquoi ne pas le tester?
OriginalL'auteur Nilbert | 2010-08-02
Vous devez vous connecter pour publier un commentaire.
Ils sont passés comme des chaînes de caractères, sont donc toujours truthy, sauf s'ils sont l'un de ces, qui a la valeur false à la place:
''
'0'
Me rendre la vie plus facile je viens de passer boolean OBTENIR des variables comme
1
ou0
et de valider pour être l'une de ces valeurs, ou choisir une valeur par défaut de façon appropriée:href="http://php.net/manual/en/language.types.type-juggling.php#language.types.typecasting" >oui.
Bienvenue sur les bases de PHP. 🙂 Les Types sont coulé, tout le temps de manière implicite dans PHP.
"|| $_GET['var'] === '0'" état de la branche est superflu ici. if (isset($_GET['var']) && $_GET['var'] === '1') { $var = true; }
Ouais, ton exemple est tout à fait bon dans le fait qu'il est très académique et facile à comprendre. Elle est décomposée bien et est en illustrant comment les développeurs pense que quand on résout une telle tâche.
OriginalL'auteur
Non,
$_GET
toujours contenir uniquement des chaînes.Cependant, vous pouvez filtre pour obtenir une valeur de type boolean.
Exemple:
Un lien vers php.net/filter serait approprié.
Un peu monstrueux, mais très pratique, +1.
Eh bien, mais vous aurez une variable de type, pas besoin de vérifier si
isset
, et le drapeau est bien sûr facultatif.ou si c'est un tableau ou pas...
OriginalL'auteur