Version complète: sur le forum Webmaster Hub : A quoi sert le "!" dans cette fonction ? HELP :(((
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
gto55
Bonjour,

La question est dans le code.

MErci d'avance oops.gif

CODE
<?php
function dir_texte($qui, $texte='bonjour'){
if(empty($qui)){
return FALSE;
}else{
echo "$texte $qui <br />";
return TRUE;
}
}

A quoi sert le point d'exclamation ici ???

//dir_texte('bill');
if(!dir_texte("")){
echo "erreur<br />";
}
if(!dir_texte("bill")){

}
?>


Est ce que le symbole ! ne veut pas dire "différent de", je ne comprends pas trop avec le cas ci dessus sad.gif sad.gif sad.gif sad.gif
sarc
Bonjour,

D'où sort ce code ? Enfin, je reformule... Tu l'as copié tel-quel du fichier à ici, ou tu as viré des parties dedans ? Parce que copié comme tel, il ne sert strictement à rien, effectivement.

Enfin bon, là le programme renvoie erreur si dir_texte renvoie FALSE... En fait, le "!" sert à demander si la fonction renvoie le contraire de 1, donc 0 (FALSE) pour un boolean..

Il est sensiblement mieux de mettre "if (dir_texte == FALSE)" qui est plus compréhensible !

M'enfin je t'avoue qu'avec le code que tu as copié, le programme me semble bizarre.
gto55
c'est un éxemple du livre php5 avancé sur le test de la valeur de retour lors de l'appel d'une fonction
Fuleran
En Php le ! correspond à l'opérateur booléen NOT. A ne pas confondre avec != qui signifie "différent" (Not égal).

Benoit
lionel.a
Bonjour,

Ce sont de vieilles utilisations de code, qui ne sont pas totalement correctes. Je n'ai pas la totalité de ton code, mais je pense qu'elles vérifient soit que la variable retournée par la fonction existe, en testant si elle est différente de vide, voire de FALSE.

Il vaudrait mieux écrire :

CODE
//dir_texte('bill');
if(is_null(dir_texte("")) || dir_texte("") === FALSE){
echo "erreur<br />";
}
if(is_null(dir_texte("bill")) || dir_texte("bill") === FALSE){

}


En fait, regarde ce que ta fonction dir_texte retourne, et choisis soit is_null si elle retourne NULL ou rien, soit FALSE si elle retourne FALSE.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.