Fonction strstr, question sur ce qu'elle renvoit.

Fonction strstr, question sur ce qu'elle renvoit. - PHP - Programmation

Marsh Posté le 03-05-2011 à 13:36:38    

Bonjour à tous, étant débutant en programmation je me pose une question sur la fonction strstr.
J'ai une fonction php censée vérifier si une variable est stockée dans une variable session.
 
Cette fonction me renvoit :
 
return (strstr($_SESSION['consultation'], $pRubrique) === true);
 
 
Cela veut dire que si $pRubrique est trouvée dans $_SESSION['consultation'], alors la fonction doit me renvoyer true obligatoirement plutot que la sous chaine à partir de $prubrique?
 
Merci de m'éclairer  ;)

Reply

Marsh Posté le 03-05-2011 à 13:36:38   

Reply

Marsh Posté le 03-05-2011 à 14:18:12    

La doc dit :

Citation :

Returns the portion of string, or FALSE if needle is not found.
Source : http://fr.php.net/manual/en/function.strstr.php

Donc, il est vrai qu'il est étrange de tester true. L'utilisation des trois signes "égal" au lieu de deux signes "égal" ne change rien, car === est juste pour préciser "equal to and same type", or là, en cas de non-False, la fonction ne renverra pas un booléen mais une chaîne.

Reply

Marsh Posté le 03-05-2011 à 15:05:33    

Comme ça va te renvoyer la 1er occurrence de la chaîne recherchée plus ce qui suit jusqu'à la fin de la chaîne dans laquelle tu as fait la recherche. Donc, pour ton test, vaudrait mieux faire :
if (strstr(strtolower($_SESSION['consultation']), strtolower($pRubrique)) !== FALSE) {...}


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 03-05-2011 à 20:27:37    

Merci à vous ! ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed