Différence entre if(isset($_POST['valeur'])) et if($_POST['valeur'] !="&quo

Eléphant du PHP | 112 Messages

23 janv. 2008, 02:14

Bonjour,

Mon petit doigt me dit qu'il doit y avoir une différence entre ces deux syntaxes, mais en vérité le contraire ne me déplairait pas(...) car je peine à la comprendre:
if(isset($_POST['valeur'])) 
if($_POST['valeur'] !="") 
Merci pour vos lumières

ViPHP
ViPHP | 928 Messages

23 janv. 2008, 02:27

Bonsoir,
pour commencer as tu pris le temps de chercher ? http://fr.php.net/manual/fr/function.isset.php
isset() est tout de même une des bases du langage.
if($_POST['valeur'] !="")
vérifie que la valeur de $_POST['valeur'] soit différente du "vide" ('' ou 0 ou NULL)

if(isset($_POST['valeur']))  
vérifie juste que $_POST['valeur'] est une variable qui existe, peu importe son contenu.

ViPHP
AB
ViPHP | 5818 Messages

23 janv. 2008, 04:49

if(isset($_POST['valeur']))  
vérifie juste que $_POST['valeur'] est une variable qui existe, peu importe son contenu.
@Anémone
Attention cependant
si
$_POST['valeur'] = 0; ou  $_POST['valeur'] = '';
 if(isset($_POST['valeur'])) retourne vrai

mais si
$_POST['valeur'] = NULL ; 
if(isset($_POST['valeur'])) retourne faux

Eléphant du PHP | 291 Messages

23 janv. 2008, 07:49

De même, si tu tentes d'écrire ça :
<?php
if($_POST['valeur'] !="");
?>
alors qu'il n'y a pas d'élément "valeur" dans le tableau $_POST, tu auras droit à un beau warning ! (si ton serveur les affiche ;))

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 janv. 2008, 12:07

A voir également : la fonction empty() qui test à la fois si la variable n'est pas définie ou si celle-ci est définie mais vide :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 112 Messages

25 janv. 2008, 01:19

Merci pour toutes ces réponses, que je vais approfondir en les mettant en pratique dans mon script en cours....

x@v
Mammouth du PHP | 570 Messages

25 janv. 2008, 02:01

il n'y a rien a chercher
isset — Détermine si une variable est affectée
Alors que tu demandes si la variable est une chaine vide.
$toto != ""