J'ai besoin de vérifier si les variables sont définies sur quelque chose. Jusqu'à présent, j'ai utilisé strlen (), mais c'est vraiment embarrassant comme je Je suis presque sûr que ce n'est pas une fonction très efficace à utiliser à nouveau.
Comment effectuer ce type de vérification plus efficacement:
if (strlen($_GET['variable']) > 0)
{
Do Something
}
Notez que je ne veux rien faire si $_GET['variable'] = ''
Juste pour clarifier ce que je veux dire - Si j'avais www.example.com?variable=&somethingelse=1
Je ne voudrais pas qu'il pénètre cela si la déclaration
Vous pouvez essayer empty
.
if (!empty($_GET['variable'])) {
// Do something.
}
Du côté positif, il vérifiera également si la variable est définie ou non, c'est-à-dire qu'il n'est pas nécessaire d'appeler isset
séparément.
Il y a une certaine confusion concernant le fait de ne pas appeler isset
. À partir de documentation .
Une variable est considérée comme vide si elle n'existe pas ou si sa valeur est égale à FALSE. empty () ne génère pas d'avertissement si la variable n'existe pas.
et...
Cela signifie que empty () est essentiellement l'équivalent concis de! Isset ($ var) || $ var == false.
if(isset($_GET['variable']) && $_GET['variable']!=""){
}
if(isset($_GET['variable']) && !empty($_GET['variable']))
{
//Do Something
}
Si vous voulez juste vérifier si un $ _GET est défini, sans connaître la valeur, comptez simplement le tableau $ _GET:
<?php
if (count($_GET) == 0):
// do your stuff
else:
// do your other stuff
endif;
?>
Vous pouvez utiliser la vérification de isset()
mais je préfère vérifier également le caractère non vide avec != ''
if (isset($_GET['variable'])) && ($_GET['variable']) != '')
que diriez-vous juste
if ($_GET['variable'])
{
Do Something
}