Aller au contenu

que veut dire !@isset ?


fredrick

Sujets conseillés

Bonjour, j'aimerais savoir la signification en français de ce bout de code. Merci

if((!@isset($_SESSION['pseudo'])) || ($_SESSION['pseudo']=="")){

c'est le !@isset qui me dérange.

Lien vers le commentaire
Partager sur d’autres sites

! --> pas egal

@ --> pour eviter d'afficher les messages d'erreur et autre warning

(si par exemple la variable de session pseudo n'est pas définie)

Modifié par Vincent
Lien vers le commentaire
Partager sur d’autres sites

SI la variable $_SESSION['pseudo'] n'existe pas OU si elle est vide FAIRE :

isset() : retourne true si la variable existe. !isset() retourne true si la variable n'existe pas. Le @ évite les messages d'erreurs (inutile ici mais je peux me tromper).

N'oublie pas qu'il existe une excellente doc ;)

edit: Heureusement que le wifi a laché deux fois :-° . Sympa l'édition rapide.

Modifié par Reivilo
Lien vers le commentaire
Partager sur d’autres sites

Sauf que...

Le arobase sert à ne pas afficher l'erreur que pourrait retourner la fonction.

Mais 'isset' ne retourne jamais d'erreur. Donc le arobase ne sert à rien.

Lien vers le commentaire
Partager sur d’autres sites

Je pense que le code que tu souhaites utiliser ne fonctionnera pas comme tu le souhaites :

if((!@isset($_SESSION['pseudo'])) || ($_SESSION['pseudo']==""))

Je ne suis pas sur, mais je pense que dans tous les cas, il y aura quelqu'un ici pour me reprendre. Je pense que malgré ton ISSET, php va évaluer la condition ($_SESSION['pseudo']=="") pour savoir si la condition entière présente dans ton if va être satisfaite ou non. Je te conseille de faire comme suit:

if(!isset($_SESSION['pseudo']))
{
$condition=true;
}
else
{
if ($_SESSION['pseudo']=="")
{
$condition=true;
}
else
{
$condition=false;
}
}
if ($condition==true)
{...}

Là, au moins, t'es sur que ta condition ($_SESSION['pseudo']=="") ne t'enverra pas das les roses car $_SESSION['pseudo'] existe forcément si elle doit être évaluée.

Modifié par Bourinho
Lien vers le commentaire
Partager sur d’autres sites

Son code était correct, car si $_SESSION['pseudo'] n'existe pas on continue sans évaluer la seconde condition alors que si elle (la variables) existe on vérifiera la seconde condition avant de continuer.

Modifié par petit-ourson
Lien vers le commentaire
Partager sur d’autres sites

Ok, en fait je faisais une analogie avec un problème quasiment identique qui est le suivant :

if ((isset($_POST['Truc']))&&($_POST['Truc']==1))

Ca renvoit un message d'erreur ("WARNING") alors que l'on fait le isset avant...du coup, j'ai un peu de mal avec la chronologie dans les conditions PHP...

Lien vers le commentaire
Partager sur d’autres sites

Ok, en fait je faisais une analogie avec un problème quasiment identique qui est le suivant :

if ((isset($_POST['Truc']))&&($_POST['Truc']==1))

Ca renvoit un message d'erreur ("WARNING") alors que l'on fait le isset avant...du coup, j'ai un peu de mal avec la chronologie dans les conditions PHP...

Bon.. C'est typiquement le cas où l'on peut utiliser le '@' :

if(@$_POST['truc']=="1")

Seulement, il faut se méfier, car php est assez permissif.

Pour lui, les valeurs '1', 1 et true peuvent avoir la même signification, suivant les cas.

Lien vers le commentaire
Partager sur d’autres sites

Merci Anonymous!!!

Donc, si j'ai bien compris, la condition que tu proposes donne :

_vrai si $_POST['Truc']="1" (ou ce qu'on veut suivant ce que l'on a à tester...)

_faux sinon et on n'a pas de message d'erreur si $_POST['Truc'] n'existe pas!!!

Si c'est ça, ça m'arrange bien!!!!

Lien vers le commentaire
Partager sur d’autres sites

Non, pas tout à fait.

La condition == (double égal) renvoie vrai si ce que tu compares peut être assimilé à 1.

Par exemple :

if($truc == 1) renvoit vrai si

$truc = '1' (1 en chaîne de caractères)

$truc = 1 (1 numérique)

$truc = true

Si tu veux vérifier une égalité stricte (même valeur ET même type), il faut utiliser une triple égalité (===)

Par exemple, si tu veux être sûr que $truc est égal à 1 numérique, il faudra utiliser

if($truc === 1)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...