2017-06-14 1 views
1

J'ai ce code:isset obtenir variable et 0 sur l'opérateur ternaire elvis

$var=(isset($_GET[var])?$_GET[var]:1); 

Je pense qu'il devrait fonctionner comme ceci:

  • si url n'a pas var (file.php), puis $ var = 1.
  • si l'URL a var (file.php? Var = 0), $ var = 0.

Ce que je reçois est:

  • si url n'a pas var (file.php), puis $ var = 1.
  • si l'URL a var (file.php? Var = 0), $ var = 1.

$ _GET [var] est réglé! et il est 0, pourquoi je reçois 1?

Répondre

3

Fermer. Vos parenthèses étaient juste un peu off. Et est var une constante?

$var = isset($_GET['var']) ? $_GET['var'] : 1; 

Vous string voulais dire soit 'var' de la variable $var j'imagine.

+3

Pas vraiment d'importance pour les parenthèses. – Qirel

+0

@Qirel, merci. Bon à savoir. Supposé que ce serait une erreur de syntaxe mais je me suis demandé. – ficuscr

+0

S'il s'agissait d'une erreur de syntaxe, cela n'aurait pas du tout marché ;-) Accordé, la parenthèse autour du ternaire entier n'est pas nécessaire, mais cela ne fait pas mal non plus. – Qirel