Deux conditions

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Deux conditions

par Ryle » 24 juil. 2007, 01:06

Euh oui, mais non.. c'est pas non plus à généraliser...

Si la variable n'est pas définie, empty() retournera vrai sans emettre d'avertissement, mais si la variable est appellée ensuite vous y aurez droit quand même.

Ce n'est vallable, comme le précise Hubert, que pour plus de lisibilité dans ce cas : le isSet() n'est pas nécessaire si l'on teste juste la variable avec empty(), mais cette fonction ne dispense pas de l'appel a isSet() pour vérifier que la variable existe avant de pouvoir l'utiliser :)

par Hywan » 23 juil. 2007, 23:04

Voici en plus une bonne raison d'utiliser empty : il vérifie aussi l'existence d'une variable :)

+1 pour Hubert.

par Hubert Roksor » 23 juil. 2007, 22:53

Pour des raisons de clarté, vous pouvez vous passer d'isset() puisqu'empty() vérifie si la variable est définie sans émettre d'erreur.

par Hywan » 23 juil. 2007, 22:41

merde, jsuis un geek obscure maniaco-délirant ... c'est grave docteur ? :?
Y en a-t-il d'autre parmi ce forum :lol: ? Je dénonce (et toc) Cyrano d'en être un déjà ! Plus on est de fous, euh de maniaco-délirants, plus on rit ! (c'est bien connu).

par Cyrano » 23 juil. 2007, 21:58

Je te propose ceci :
$id = (isset($_GET['id']) && !empty($_GET['id'])) ? $_GET['id'] : ((isset($_POST['id']) && !empty($_POST['id'])) ? $_POST['id'] : 18);
En d'autre termes (si jamais ce code te semble digne des plus obscurs codes des geek maniaco-délirants) :
Si $_GET['id'] est défini et non vide, on assigne la valeur à $id, sinon, si $_POST['id'] est défini et non vide, alors on l'assigne à $id et si rien de tout ça n'est vrai, alors on affecte 18 à $id.

Ceci est un opérateur ternaire (avec un second ternaire imbriqué. Au besoin, regarde dans la FAQ, il y a un sujet qui traite des opérateurs ternaires.

par Dom! » 23 juil. 2007, 21:04

Bon merci pour la réponse !!

Mais je mets quoi alors ??? :D

par Hywan » 23 juil. 2007, 19:03

Euh sûrement. Tu me fous le doute du coup.

PHP est amené à être moins souple sur le typage, alors autant utiliser les fonctions appropriées maintenant :D (jm'en sors pas trop mal là :P)

Mais quand même, préfère empty à une comparaison simple à chaîne vide. Tu es sûr de ton résultat comme ça.

par Genova » 23 juil. 2007, 18:50

@HyWaN :tir2:
:P

Normalement
if (empty($var))
et
if ($var == '')
c'est la même chose, car PHP considère NULL, FALSE, 0 et ' comme la même chose dans le cadre d'une comparaison sans les types.

Me trompe-je ?

par Hywan » 23 juil. 2007, 17:10

Je vais me faire fusillier par Genova, mais préfère faire : empty($var), plutôt que $var == ''. Si jamais ta valeur est null, true, ou false, le test de Genova ne risque pas de marcher :)

par Genova » 23 juil. 2007, 17:03

if ($id == '')
{
   $id = 18;
}
:roll:

Tu avais déjà fait la condition en français, j'ai du mal à saisir là où tu bloquais en fait.

Deux conditions

par Dom! » 23 juil. 2007, 17:02

Bonjour,

Je souhaites ajouter unje condition à cette ligne :
if (isset($_GET['id']))
 {
                 $id = $_GET['id'];  //ICI
				 }
				 else
				 {
                 $id = $_POST['id'];  //ICI
				 }
Je souhaite dire que si $id = rien alors $id= 18

Pourriez vous me dire comment faire ?
merci d'avance