Question PHP : Différence de code

Fermé
playboy-1990 Messages postés 458 Date d'inscription samedi 27 mars 2010 Statut Membre Dernière intervention 10 septembre 2016 - 10 déc. 2010 à 08:19
monkey_monk Messages postés 641 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 10 août 2012 - 5 janv. 2011 à 09:23
Bonjour,
Je voudrais savoir la différence entre
<?php
	if($message!="")
	{echo 'salut';}	
else
{echo 'rien';}
	?>

et ce code
<?php
	if (!empty($message))
	{echo 'salut';}	
else
{echo 'rien';}
	?>
A voir également:

7 réponses

Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
10 déc. 2010 à 09:14
Bonjour,
Selon le manuel php, empty permet de vérifier qu'une valeur vaut soit 0, vide ou pas définie...
Alors que l'opérateur != vérifie seulement si c'est différent
0
playboy-1990 Messages postés 458 Date d'inscription samedi 27 mars 2010 Statut Membre Dernière intervention 10 septembre 2016 273
10 déc. 2010 à 11:52
Oui mais
!empty(
c'est l'inverse
Donc
($message!="")
et
(!empty($message))

font la même chose (vérifier si il vaut une valeur ?)
0
monkey_monk Messages postés 641 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 10 août 2012 130
Modifié par monkey_monk le 10/12/2010 à 12:03
$message != ""
vérifie si $message n'est pas une chaine de caractère vide.

!empty( $message )
vérifie si $message contient qque chose, caractère ou autre.
0
playboy-1990 Messages postés 458 Date d'inscription samedi 27 mars 2010 Statut Membre Dernière intervention 10 septembre 2016 273
10 déc. 2010 à 15:36
Donc c'est la même chose ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
monkey_monk Messages postés 641 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 10 août 2012 130
4 janv. 2011 à 16:17
...comme je le dis plus haut, non.
Ce n'est pas pareil, mais dans certains cas la différence ne pose aucuns problèmes ! ;-)

La première forme sert à vérifier 2 choses principalement : si la variable est de type caractère et si elle est vide.
La seconde vérifie uniquement si la variable est vide et ne se préoccupe pas de savoir si elle est de type numérique ou autre.

C'est plus clair comme ceci ? ^
0
coeus Messages postés 3021 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
4 janv. 2011 à 21:26
En fait non, le $message != "" ne vérifie pas le type de variable. Pour ça, il faudrait que ce soit $message !== "" ; alors là il faudrait que la variable soit un string ET qu'elle ne contienne aucun caractère.
Dans le cas présent, je pense que les deux reviennent pas mal au même. Il y a peut-être quelques exceptions, mais aucune ne me vient à l'esprit présentement.
0
monkey_monk Messages postés 641 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 10 août 2012 130
5 janv. 2011 à 09:23
Effectivement,
== est un opérateur d'égalité et === un opérateur d'identité, my bad.

Donc, si on fait :
$message = "4";
$test = 4;

if($message == $test) {
  // cette condition est juste (TRUE)
}
if($message === $test){
  // cette condition est fausse (FALSE)
}


Sorry, sorry ! ^^'
0