8
votes

PHP Lecture 'Obtenir' Variable qui peut être définie ou non

Si vous essayez de lire la valeur d'une variable «Obtenir», que se passe-t-il si ladite variable n'avait pas été définie dans l'URL. Exemple: Vous demandez la page test.php , dans ce fichier, il essaie de lire la valeur de $ _ obtenir ['message'] . Que se passe-t-il dans ce cas? dose la valeur juste être retournée comme '' ?

Cela signifie-t-il que si j'attends toujours une valeur à entrer et que je ne suis pas disposé à accepter une valeur "'que je peux juste Faites quelque chose comme xxx

Veuillez garder à l'esprit que je pouvais utiliser isset ($ _ obtenir ['bar']) mais je ne sais pas Je veux juste savoir s'il est défini, je m'en fiche si c'est ou non, je me soucie juste de la valeur qui est plus qu'une simple chaîne vide.


1 commentaires

oooh, qu'est-ce que j'ai fait à mes tags: P J'ai essayé d'écrire "$ _get"


4 Réponses :


0
votes

Si je comprends bien, c'est:

$foo = $_GET['bar'];
if ((!isset($foo)) || $foo == '') {
//GET veriable not set, error
}
else {
// GET veriable set, code here.
}


1 commentaires

Mais dans ce code, je devrai encore vérifier si $ foo == '' Je veux essayer de le faire simplement en une fois.



6
votes

Si vous essayez d'accéder à un élément de tableau qui n'existe pas, le résultat sera null code>.

$foo = isset($_GET['bar']) ? $_GET['bar'] : 'default value';


0 commentaires

7
votes

Si vous ne vous inquiétez pas si la valeur est réellement définie, vous pouvez utiliser ceci:

if (empty($_GET['bar']))
    // value is null, false, 0, '0' or an empty string (including whitespace).


3 commentaires

Je crois que c'est la solution parfaite à mes besoins. Cela ne générera donc pas une erreur si $ _ obtenir ['bar'] n'était même pas défini en premier lieu.


Je pense qu'il est important de souligner que cela considérerait la chaîne '0' pour être vide. Si vous utilisez cela comme ID pour les pages pour charger cela pourrait vous causer des problèmes. Je crois bien que la plupart des bases de données démarrent des numéros automatiques pour une colonne d'identité à 1


oui, ajouté que à la réponse.



1
votes

Voici comment je le fais.

$foo = ( isset( $_GET['bar'] ) ) ? $_GET['bar'] : false;

if(false === $foo){
   die( 'no Foo for your Bar' );
}


0 commentaires