gvosnet Posted July 13, 2006 Share Posted July 13, 2006 Hello, Je viens de tomber sur du code PHP dont je ne comprends pas trop la signification... Dans ce bout de code : $pos = strrpos($machaine, "b"); if ($pos === false) { (...) blablabla (...) } Que signifient les 3 signes égal (=) dans le test ? Le problème, c'est que je n'arrive pas à trouver de réponse avec Google (pas évident une recherche avec des symboles dans Google....). Ca doit être tout con, mais je trouve pas. Si vous avez une réponse, elle est la bienvenue Link to comment Share on other sites More sharing options...
gvosnet Posted July 13, 2006 Author Share Posted July 13, 2006 Ok, je viens de trouver : $a == $b Egal TRUE si $a est égal à $b. $a === $b Identique TRUE si $a est égal à $b et qu'ils sont de même type (introduit en PHP 4). Je mets en résolu. Link to comment Share on other sites More sharing options...
FiP_ Posted July 13, 2006 Share Posted July 13, 2006 Petit ajout: C'est utile pour les fonctions qui peuvent retourner soit un boolen soit un entier, comme la fontion str_pos (cherche une chaine dans une autre) Si la chaine est trouvée, str_pos retourne un nombre, correspondant à la position où se trouve la chaine recherchée dans l'autre. La fonction retourne false si la chaine n'est pas trouvée. On pourrait donc faire if str_pos(...) == false echo 'la chaine n\'a pas été trouvée'; Pourtant, un probléme apparait si la chaine recherchée est tout au début de la seconde chaine: comme 'toto' dans 'totoro'. str_pos('toto','totoro') retournera donc 0, et dans le code précedent, le 0 sera transformé en "false"! le texte "la chaine n'a pas été trouvée" sera donc affiché, alors que la chaîne etait bien là. le triple symbole "=" permet d'éviter les castages automatiques sauvages ^^; Link to comment Share on other sites More sharing options...
trigunheat Posted July 26, 2006 Share Posted July 26, 2006 Ca peut aussi permettre de comparer deux valeurs d'instances différentes. Disons que : $objet1 = new laclass(); $var1 = $objet1->methode('attribut1'); //on dira que var1 est égal à toto on fait la même chose mais en créant une nouvelle instance $objet2 = new laclass(); $var2 = $objet2->methode('attribut1'); //var2 sera également égale à toto mais si on fait if($var1 === $var2) //ça renvoit false. Pour être plus clair : http://www.php.net/manual/en/language.oop5...-comparison.php Link to comment Share on other sites More sharing options...
FiP_ Posted August 14, 2006 Share Posted August 14, 2006 Ca peut aussi permettre de comparer deux valeurs d'instances différentes. (...) http://www.php.net/manual/en/language.oop5...-comparison.php Ah ouais tiens! Je ne savais pas merci pour ces précisions. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.