Problème dans mon code, résultat étrange

Problème dans mon code, résultat étrange - PHP - Programmation

Marsh Posté le 03-08-2005 à 20:24:59    

Bonsoir,
Bon alors voilà mon code :
 

Code :
  1. $words = array("if","else","and","endif","return","while","and","or","not","for" );
  2. $i = 0;
  3. $search = "[";
  4. while ( $words[$i] ) {
  5. $search .= $words[$i];
  6. if ( $words[$i+1] ) {
  7.  $search .="|";
  8. }
  9. $i++;
  10. }
  11. $search .= "]";
  12. echo $search;


 
Et je me demandais pourquoi ça affiche ça:
 

Citation :

[if|else|and|endif|return|while|and|or|not|for][if|else|and|endif|return|while|and|or|not|for][if|else|and|endif|return|while|and|or|not|for][if|else|and|endif|return|while|and|or|not|for]


 
Je comprends pas...
Merci d'avance! :)


Message édité par dwogsi le 03-08-2005 à 20:44:26

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 03-08-2005 à 20:24:59   

Reply

Marsh Posté le 03-08-2005 à 20:38:21    

ben tu concatène chaque valeur de ton tableau dans la variable $search.
Je vois pas ou est ton pb, tu voulais obtenir quoi ?

Reply

Marsh Posté le 03-08-2005 à 20:41:28    

Oui mais je devrais avoir une seule fois ça normalement:
 
[if|else|and|endif|return|while|and|or|not|for]
 
or je l'ais quatre fois, et je comprends pas bien pourquoi là...


Message édité par dwogsi le 03-08-2005 à 20:42:29

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 03-08-2005 à 21:01:39    

Tu ne dois pas nous donner tout le code a mon avis.
 
En PHP tu peux utiliser la fonction count() qui te retourne le nombre d'elements d'un tableau : bien plus propre que de faire des acces a des elements probablement inexistant.

Reply

Marsh Posté le 03-08-2005 à 21:08:08    

ben ton code doit etre repété 4 fois puisque ta boucle est nickel tes [] sont affichés les 4 fois, je ne vois que ca de plausible, file tout le code non di diou, sinon je te fouette

Reply

Marsh Posté le 03-08-2005 à 21:09:47    

Oui je sais il y a count() mais bon là c'est pour un exemple de while pour quelqu'un, donc si je n'arrive pas à trouver la solution à mon problème c'est pas bien grave, cependant j'aimerais quand même comprendre.
 
Et OUI je vous donne ici tout mon code, c'est la raison pour laquelle c'est assez surprennant.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 03-08-2005 à 21:11:45    

Enfin non en fait lol, mais je penses pas que le reste soit intéressant :
 

Code :
  1. function toto($str) {
  2. $words = array("if","else","endif","return","while","and","or","not","for" );
  3. $i = 0;
  4. $search = "[";
  5. while ( $words[$i] ) {
  6.  $search .= $words[$i];
  7.  if ( $words[$i+1] ) {
  8.   $search .="|";
  9.  }
  10.  $i++;
  11. }
  12. $search .= "]";
  13. echo $search;
  14. }
  15. // Voilà en fait j viens de faire des modif...
  16. // Mais je viens de les faire, maintenant la tout de
  17. // suite au moment où j'édite!!!!
  18. if ( isset($_POST["message"]) ) {
  19. toto($_POST["message"]);
  20. }else{
  21. toto("" );
  22. echo "<br><span style=\"color:red\">Test de la fonction impossible.</span>";
  23. }


Message édité par dwogsi le 03-08-2005 à 21:30:27

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 03-08-2005 à 21:14:54    

Dans le doute j'ai testé chez moi et j'ai k'une seule occurence.

Reply

Marsh Posté le 03-08-2005 à 21:15:50    

Bah c'est encore une fois pas TOUT le code ...

Reply

Marsh Posté le 03-08-2005 à 21:20:23    

Et pourtant je vous jure que ça s'arrête là, ou alors ya vraiment un truc qui va pas, mon client ftp qui glisse du code dans les upload peut être? lol


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 03-08-2005 à 21:20:23   

Reply

Marsh Posté le 03-08-2005 à 21:23:31    

Tu nous montres une declaration de fonction ... tu fais forcement appel a cette fonction ! (et tu dois y faire appel 4 fois en plus ...)

Reply

Marsh Posté le 03-08-2005 à 21:25:41    

Non ça va je me suis limité à écrire :
 
toto("" );
 
UNE SEULE ET UNIQUE FOIS JE VOUS L'ASSURE!!!
 
EDIT : Bon attend je vais aller éditer puisque tu y tiens
=> EDIT : Voilà c'est fait.


Message édité par dwogsi le 03-08-2005 à 21:32:34

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Sujets relatifs:

Leave a Replay

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