Un if dans un while

Fab121205 Messages postés 81 Date d'inscription   Statut Membre Dernière intervention   -  
 Fab1205 -
Bonjour,
je sais que mettre un if dans un while ne fonctionne pas mais je ne vois pas comment je pourrais faire pour contourner ce problème. J'aimerais écrire les mots du'une phrase que l'utilisateur écrit mais seulement ceux qui ont plus de 3 caractères. Mon code :

		$phrase = $_POST['search'];
		
		$mots = explode(" ", $phrase);
		
		for($x = 0; $x < str_word_count($phrase); $x++)
		{
			if(strlen($mots[$x] > 3))
			{
			echo "<p> ".$mots[$x]."<br/></p>";
			}
			else
			{
			
			}
		}


Merci Fab1205

3 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonsoir, je pense qu'un if fonctionne superbement dans un while ou un for. quel est ton soucis?
0
Fab1205
 
Essaie un petit teste et tu verras que ca ne fonctionne pas j'ai cherché et en effet. L'erreur est qu'il y a un { dans le while ce qui est Interdit.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

erreur de parenthèse...
if(strlen($mots[$x] > 3))

A remplacer par
if(strlen($mots[$x]) > 3)

0
Fab1205
 
Oui j'ai vite réécrit le code mais ça marche quand même pas
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Fais donc un print_r($mots); et montres nous ce que ça donne...
Et explique nous en détail ce qui, selon toi, ne fonctionne pas (le résultat obtenu vs le resultat attendu. )

Et file regarder ceci : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
(activation des erreurs php, récupération "propre" des variables AVANT de les utiliser, débugage de son code...etc... )
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
pourquoi pas:
$phrase = $_POST['search'];
		foreach (explode(" ", $phrase) as $mot)
		{
			if(strlen($mot) > 3)
			{
			echo "<p> ".$mot."<br/></p>";
			}
		}
0
Fab1205
 
Merci beaucoup
0