PHP: vérifier si posté variable existe ou affecter la valeur null
Cela peut être fait en Javascript avec la fonction isNAN au lieu de !isset.
En utilisant l'exemple ci-dessous - les deux formes de post à mon script, sans valeur et de la valeur. Est le code ci-dessous une manière correcte de le faire en PHP pour affecter une valeur si, à la suite de la var n'est pas présent?
$mycheck = !isset($_POST['valeur']) ? 0 : $_POST['valeur'];
<?
if($_POST) :
$mycheck = !isset($_POST['value']) ? 0 : $_POST['value'];
echo $mycheck;
endif;
?>
<!-- send value-->
<form action="" method="post">
<select name="value">
<option value="0">0</option>
<option value="5">5</option>
</select>
<input type="submit" name="submit">
</form>
<!-- doesn't send value-->
<form action="" method="post">
<input name="different_var">
<input type="submit" name="submit">
</form>
OriginalL'auteur Innate | 2012-07-20
Vous devez vous connecter pour publier un commentaire.
Oui, c'est une façon acceptable de définition de valeurs par défaut.
Une alternative, introduit en PHP 5.3, est d'omettre le milieu argument de votre ternaire expression:
Cependant, ce sera probablement jeter des avis pour essayer d'accéder à un tableau avec une inexistant clé si
$_POST['value']
n'est pas définie. Par conséquent, votre méthode originale est plus accepté.$_POST['value']
au lieu deisset($_POST['value'])
, conformément à l'OP intentions.Déjà corrigé 🙂
Je pense que
isset()
est parfaitement acceptable pour cette solution. Il sera toujours vrai ou faux, et permettra de faire exactement ce que l'OP veut...donc, si la publication de la valeur est une chaîne de caractères de votre méthode est acceptable, mais si de sa un tableau de son mieux pour utiliser ma méthode originale?
Je pense que oui. Ternaire, les opérateurs sont à la recherche d'un vrai/faux réponse et
isset()
vous donnera toujours que, même avec un tableau.OriginalL'auteur Mike B
Il fonctionne, mais il y a une manière plus propre de l'écriture.
Depuis PHP 5.3, vous pouvez raccourcir ternaire des opérations à deux expressions, comme:
Fondamentalement, cela signifie que vous avez déjà.
OriginalL'auteur Palladium