Attendre la fin d'une fonction

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Attendre la fin d'une fonction

par saebakun » 01 mars 2009, 16:16

ok je crois que je viens de comprendre.

En fait voilà:

Code : Tout sélectionner

$sql=sql('select id_travaux from travaux where en_cours=1'); for($i=0; $i<count($sql); $i++){ $id=$sql[$i]['id_travaux']; traite_travaux($id); } function traite_travaux($id){ execute_definitif($id); } function execute_definitif($id){ ...... }
Du coup il lance plein de fois traite_travaux alors que execute_definitif du précèdent n'est pas encore fini...

Y'a moyen de contourner ce problème ou pas?


J'ai contourné le problème en mettant le code de la deuxième fonction appelée dans la première

merci

par Ryle » 01 mars 2009, 16:14

PHP ne lance pas de processus en parallèle... ton problème doit venir d'ailleurs, car php ne passera pas à l'itération suivante tant que le traitement de ta fonction n'est pas terminé :)

Attendre la fin d'une fonction

par saebakun » 01 mars 2009, 16:08

Bonjour,

j'ai fait un boucle pour mettre à jours des données de ce type:

Code : Tout sélectionner

$sql=sql('select id_travaux from travaux where en_cours=1'); for($i=0; $i<count($sql); $i++){ $id=$sql[$i]['id_travaux']; traite_travaux($id); } function traite_travaux(){ .... }

Mais le problème c'est que ma boucle lance tout les traite_travaux($id) d'à filé.

Mais je voudrais qu'il continue la boucle qu'une fois que la fonction traite_travaux ait traité le $id précèdent.

Voilà est-ce possible?

Merci :)