2010-11-10 10 views
0

J'utilise une variable dans Javascript qui sera définie via Php par ex. var usesInterview = <?php echo 1;?>Javascript; vérifier si une variable est 1 ou 0

Sinon, var usesInterview = <?php echo 0;?>

Comment dois-je mieux gérer cela dans mon code? Il y aura une instruction If pour vérifier la variable et déterminer l'itinéraire à prendre.

J'ai essayé d'utiliser typeof() == 1 et quand je l'ai mis à 0, il porte encore la routine comme si elle où 1.

+0

Avez-vous trouvé l'une des réponses utiles? – NilColor

Répondre

1

Il y a tellement de façons de le faire ...-À-dire

var usesInterview = <?php echo [0|1];?> 
usesInterview ? goingTrueWay() : goingFalsegWay(); 

ou

<?php echo [0|1];?> ? goingTrueWay() : goingFalseWay(); 

ou quelque chose comme ceci:

var waysCollection = { 
    0: function() {...} //routine for usesInterview == 0 
    1: function() {...} //routine for usesInterview == 1 
} 
waysCollection[<?php echo [0|1];?>](); 

vous pouvez également utiliser l'une des suggestions tôt:

if (<?php echo [0|1];?>) { 
    // truthy branch 
} else { 
    // falsy branch 
} 

BTW, si vous voulez usesInterview être un boolea n, oui/non déclenchement, - utiliser true/false pas 0/1. C'est plus facile à lire et à comprendre plus tard. Par ex

var usesInterview = <?php echo [false|true];?> 
if (usesInterview) { 
    //do this if `true` 
} else { 
    //do this if `false` 
} 
1

typeof renverra le type de la valeur - "number" dans ce cas. Vous utilisez un contrôle d'égalité non strict (==), donc "number" == 1 est true.

Il suffit de vérifier la valeur, en utilisant l'opérateur d'égalité de type stricte (===):

if (usesInterview === 1) { 
    // do something 
} 
else if (usesInterview === 0) { 
    // do something else 
} 

En savoir plus sur les opérateurs de comparaison JavaScript à https://developer.mozilla.org/en/JavaScript/Reference/Operators/Comparison_Operators.

3

Pourquoi pas encore défini avec javascript:

usesInterview = 1; 

Même si vous définissez avec PHP, vous pouvez vérifier comme ceci:

if (usesInterview === 1){ 
    // variable is equal to 1 
} 
else if (usesInterview === 0){ 
    // variable is equal to 0 
} 

Notez que le === à vérifier pour les deux types que ainsi que valeur. Si vous ne voulez pas vérifier le type, vous devez utiliser == comme ceci:

if (usesInterview == 1){ 
    // variable is equal to 1 or "1" or true 
} 
else if (usesInterview == 0){ 
    // variable is equal to 0 or "0" or "" or false 
} 

Vous devez éviter l'approche plus tard, lorsque vous êtes sûr de deux types ainsi que valeur.

Plus d'informations:

+0

Parce que ce sera une variable Php qui permettra de déterminer si l'utilisation a des entrevues. Je ne peux pas définir une variable Javascript dans un script Php mais je peux définir une variable javascript dans un template en utilisant Php. –

+0

@user: hmm right :) – Sarfraz

+0

@Sarfraz L'utilisation d'un opérateur de comparaison non strict avec une valeur nulle (comme dans 'x == 0') devrait être évitée. Les valeurs qui produisent vrai sont 0, "", "0", faux, etc –

0

Lorsque usesInterview est 1, il est truthy. Donc, c'est aussi simple que:

if (usesInterview) { 
    // truthy branch 
} else { 
    // falsy branch 
} 
Questions connexes