Jump to content

[RESOLU] [PHP] Signification 3 signes egal


Recommended Posts

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 :cartonrouge:

Link to comment
Share on other sites

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

  • 2 weeks later...

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

  • 3 weeks later...

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...