Return et foreach

Return et foreach - PHP - Programmation

Marsh Posté le 23-01-2008 à 12:55:34    

Salut a tous
 
Alors voila mon problème.
Je dois utilisé une fonction comprenant un foreach , et ensuite récuperé la variable pour l'afficher en html.
Seulement , un return ne me retourne qu'une ligne alors qu'il devrait y en a voir plusieurs .
Je m'explique .
Voici ma fonction :
 

Code :
  1. function linkcheck($link)
  2. {
  3. foreach($link as $lcheck){
  4. return $lcheck;
  5. }


 
et j'ai inclus la variable $status ($status=linkcheck($link)) dans mon code html.
$link contient plusieurs ligne , mais lors du return seul la 1ere ligne s'affiche.
J'ai essayé avec un echo , la toutes les lignes s'affichent , mais tout en haut de la page et non pas a l'endroit ou se situe $status.
 
Existerai t'il un moyen pour que toutes mes lignes soit affiché au bon endroit ?
 
Merci

Reply

Marsh Posté le 23-01-2008 à 12:55:34   

Reply

Marsh Posté le 23-01-2008 à 12:58:21    

return sort de la function, c'est normal. Je ne sais pas ce que tu essaiyes de faire, mais c'est pas comme ça. Si tu veux retourner plusieurs valeurs il faut créer un tableau et retourner ce tableau après la boucle.


Message édité par skeye le 23-01-2008 à 12:59:58

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 23-01-2008 à 13:01:04    

C'est normal dès qu'il y a return il quitte la fonction. Ce que tu peux faire c'est de mettre tes valeurs dans une variable et après de faire un return de ta variable.

Reply

Marsh Posté le 23-01-2008 à 13:40:01    

http://www.php.net/manual/fr/function.return.php
 

Citation :

Si appelée depuis une fonction, la commande return()  termine immédiatement la fonction [...]


 
Ca m'a l'air bien expliqué pourtant.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 23-01-2008 à 13:43:19    

kyodenball a écrit :

C'est normal dès qu'il y a return il quitte la fonction. Ce que tu peux faire c'est de mettre tes valeurs dans une variable et après de faire un return de ta variable.


 
Merci de vos réponse
Comment puis je mettre toute les valeurs obtenus après le foreach dans une variable ?

Reply

Marsh Posté le 23-01-2008 à 13:45:38    

En apprenant les bases sur les tableaux.
http://fr3.php.net/manual/fr/language.types.array.php
http://fr3.php.net/manual/fr/ref.array.php


Message édité par skeye le 23-01-2008 à 13:46:28

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 23-01-2008 à 14:40:24    

snooze24 a écrit :


Code :
  1. function linkcheck($link)
  2. {
  3. foreach($link as $lcheck){
  4. return $lcheck;
  5. }



 
[:jar jar]


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
Reply

Marsh Posté le 23-01-2008 à 14:53:42    

snooze24 a écrit :


 
Merci de vos réponse
Comment puis je mettre toute les valeurs obtenus après le foreach dans une variable ?


Tu dois les mettre dans un tableau comme par exemple :
 

Code :
  1. <?php
  2. $links = Array("www.google.com","www.yahoo.com" );
  3. function linkcheck($link)
  4. {
  5.   $link_list = Array();
  6.   foreach($link as $lcheck){
  7.     array_push($link_list,$lcheck);
  8.   }
  9.   return $link_list;
  10. }
  11. $test = linkcheck($links);
  12. print_r($test);
  13. ?>


 
Bon j'espère que tu as un traitement quelconque à faire entre les deux sinon ça sert à rien :d

Reply

Marsh Posté le 23-01-2008 à 15:02:13    

Ok merci je vais essayer sa de suite :)

Reply

Marsh Posté le 23-01-2008 à 15:07:46    


C'est quoi l'intérêt de la fonction???


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

Marsh Posté le 23-01-2008 à 15:07:46   

Reply

Marsh Posté le 23-01-2008 à 15:10:17    

dwogsi a écrit :

C'est quoi l'intérêt de la fonction???


Ca a l'air d'être un foreach top moumoutte [:petrus75]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 23-01-2008 à 15:54:22    

dwogsi a écrit :


C'est quoi l'intérêt de la fonction???


Comme je l'ai dit, à rien.
C'est juste pour montrer. [:doc_prodigy]

Reply

Marsh Posté le 23-01-2008 à 16:08:43    

dwogsi a écrit :


C'est quoi l'intérêt de la fonction???


refaire la fonction array_values :)
edit: ptain mais même pas en fait :/
ça retourne le même tableau que celui qui est passé en paramètre ...


Message édité par anapajari le 23-01-2008 à 16:09:49
Reply

Marsh Posté le 23-01-2008 à 16:11:58    

anapajari > Sisi, ça refait array_values (on perd bien les clé qui se retrouvent être remplacé par des nombres).

Reply

Marsh Posté le 23-01-2008 à 16:22:33    

bin à condition que son tableau ait des clés (ce qui reste encore à prouver), d'ou mon edit.

Reply

Marsh Posté le 23-01-2008 à 16:28:13    

D'un autre côté, sans clé, array_values retourne elle aussi un tableau identique à celui qu'on lui fournit. Je ne vois pas en quoi ça diffère sur ce point.

Reply

Marsh Posté le 23-01-2008 à 16:45:36    

nan mais en rien!  ça diffère en rien ...
Juste ma réflexion fut: tiens il a recodé array_values ... en fait non, il doit  passer un tableau sans clé ... donc il a codé une fonction qui revient à:

Code :
  1. function linkcheck($link){
  2.  return $link;
  3. }


d'ou mon edit, stout :o

Reply

Marsh Posté le 23-01-2008 à 16:53:24    

Donc ta réflexion était faussé par le fait que tu n'as pris en compte qu'un cas particulier au lieux du cas général. :P

Reply

Marsh Posté le 23-01-2008 à 16:58:21    

non ma réflexion était faussé par la qualité de la demande qui m'a amené à penser que tout le reste était pareil.
Enfin j'ai dit une connerie quoi ( si c'est ça que tu voulais que je dise ;) )

Reply

Marsh Posté le 23-01-2008 à 17:04:13    

Oui . :D Non, je rigole. :p
C'est sur la qualité de la demande était nulle, mais le code d'exemple de la réponse ne l'était pas autant (enfin, elle était aussi bonne que possible avec une telle question). :P

Reply

Marsh Posté le 23-01-2008 à 17:21:34    

Pas si on prend en compte le tableau donné en exemple :o


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

Marsh Posté le 25-01-2008 à 20:17:31    

Merci pour toute vos réponses.  
Est il possible de retourné uniquement les valeurs du tableau et pas le tableau entier ?

Reply

Marsh Posté le 25-01-2008 à 20:18:57    

snooze24 a écrit :

Merci pour toute vos réponses.  
Est il possible de retourné uniquement les valeurs du tableau et pas le tableau entier ?


Mais encore? Comment tu veux les utiliser si elles ne sont dans rien du tout? Tu sais à l'avance exactement combien de valeurs la fonction va retourner ou pas?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 25-01-2008 à 21:11:22    

masklinn a écrit :


Mais encore? Comment tu veux les utiliser si elles ne sont dans rien du tout? Tu sais à l'avance exactement combien de valeurs la fonction va retourner ou pas?


 
En utilisant la fonction de corten qui se trouve pluzs haut , j'obtient ceci :
 

Code :
  1. Array ( [0] => www.google.com [1] => www.yahoo.com )


 
Je souhaiterai affiché uniquement
 

Code :
  1. www.google.com www.yahoo.com


 
et je ne sais pas a l'avance combien de valeurs sont a retournés.
 
Merci de ton aide

Reply

Marsh Posté le 25-01-2008 à 21:25:11    

print_r sert uniquement à débugger, c'est pas fait pour afficher les liens dans la page [:pingouino]
 
Pour les afficher tu vas lire la doc et apprendre comment on itère sur un tableau [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 25-01-2008 à 22:43:12    

Merci bien je vais jeter un coup d'oeil a cela ;)

Reply

Marsh Posté le 25-01-2008 à 23:25:03    

C'est très gentil de ta part.  
Je passerai a la fnac après le taff.
Sinon grace a la fonction implode j'ai trouvé mon bonheur , merci encore :)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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