comportement étrange des variables en php

voix
0

Je suis en train d'écrire le chatbot pour facebook en utilisant php. La requête de Facebook est en cours de traitement par le fichier php. Et il est simlar à cette logique:

//got request from facebook
foreach ($data['entry'][0]['messaging'] as $message){
  if (checkAnswer($message['sender']['id'], $command)){
      $command = ;
      $command = empty($message['postback']) ? $message['message']['text'] : $message['postback']['payload'];
      $bot->send(new Message($message['sender']['id'], 'Thank you very much for participation!'));
  }
}
function checkAnswer($id, $text){
//some logic;
}

Si deux messages provenant de différentes personnes sont envoyées en un instant j'observe à côté. L'appel de la fonction checkAnswer se trouve pas dans la file d'attente (I bien compris par l'enregistrement de la procédure d'exécution avec l'enregistrement de fichier). Par exemple, il peut être appelé à la demande 2 (demande de facebook), alors que la demande 1 n'est pas terminée. Et à cause de cela (je ne suis pas sûr de 100%), la variable $ id est pas toujours le même et j'ai la mauvaise exécution de l'algorithme ... Le fichier d'enregistrement de démarrage et d'arrêt est ici:

///////start////////////////////////
01:0:21 PM ID: 250 Text: 2
///////start////////////////////////
01:0:21 PM ID: 352 Text: 1
01:0:22 PM ID: 250 Text: 2
////////stop////////////////////////
01:0:22 PM ID: 352 Text: 1
////////stop////////////////////////

Je travaille avec apache2 et php7 et il est ma première application avec webservices. Pourriez-vous donner une idée de comment est-il possible de le réparer?

Créé 31/01/2017 à 13:44
source utilisateur
Dans d'autres langues...                            


1 réponses

comportement étrange des variables en php

voix
0

Je suis en train d'écrire le chatbot pour facebook en utilisant php. La requête de Facebook est en cours de traitement par le fichier php. Et il est simlar à cette logique:

//got request from facebook
foreach ($data['entry'][0]['messaging'] as $message){
  if (checkAnswer($message['sender']['id'], $command)){
      $command = "";
      $command = empty($message['postback']) ? $message['message']['text'] : $message['postback']['payload'];
      $bot->send(new Message($message['sender']['id'], 'Thank you very much for participation!'));
  }
}
function checkAnswer($id, $text){
//some logic;
}

Si deux messages provenant de différentes personnes sont envoyées en un instant j'observe à côté. L'appel de la fonction checkAnswer se trouve pas dans la file d'attente (I bien compris par l'enregistrement de la procédure d'exécution avec l'enregistrement de fichier). Par exemple, il peut être appelé à la demande 2 (demande de facebook), alors que la demande 1 n'est pas terminée. Et à cause de cela (je ne suis pas sûr de 100%), la variable $ id est pas toujours le même et j'ai la mauvaise exécution de l'algorithme ... Le fichier d'enregistrement de démarrage et d'arrêt est ici:

///////start////////////////////////
01:0:21 PM ID: 250 Text: 2
///////start////////////////////////
01:0:21 PM ID: 352 Text: 1
01:0:22 PM ID: 250 Text: 2
////////stop////////////////////////
01:0:22 PM ID: 352 Text: 1
////////stop////////////////////////

Je travaille avec apache2 et php7 et il est ma première application avec webservices. Pourriez-vous donner une idée de comment est-il possible de le réparer?

Créé 31/01/2017 à 13:44
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more