Question PHP : Différence de code

playboy-1990 Messages postés 593 Statut Membre -  
monkey_monk Messages postés 681 Statut Membre -
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 1476 Statut Membre 84
 
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 593 Statut Membre 273
 
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 681 Statut Membre 131
 
$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 593 Statut Membre 273
 
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 681 Statut Membre 131
 
...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 3296 Statut Membre 119
 
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 681 Statut Membre 131
 
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