comportament ciudat de variabile în PHP

voturi
0

Am scris chatbot pentru facebook folosind PHP. Interogarea de la Facebook este procesarea prin fișierul php. Și este simlar acestei logici:

//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;
}

Dacă două mesaje de la diferite persoane sunt trimise într-un singur moment sunt observarea următoare. Funcția de apel checkAnswer nu este în coada de așteptare (l-am înțeles prin înregistrarea procesului de executare cu Logarea la dosar). De exemplu, acesta poate fi numit la cerere 2 (cerere de la Facebook), în timp ce cererea 1 nu este finalizată. Și din cauza asta (nu sunt sigur 100%), variabila $ id-ul nu este întotdeauna la fel și am executarea algoritm greșit ... Fișierul de logare de începere și de oprire este aici:

///////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////////////////////////

Sunt de lucru cu apache2 și php7 și este prima mea aplicație cu webservices. Ați putea da orice indiciu cum este posibil pentru a remedia problema?

Întrebat 31/01/2017 la 13:44
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

comportament ciudat de variabile în PHP

voturi
0

Am scris chatbot pentru facebook folosind PHP. Interogarea de la Facebook este procesarea prin fișierul php. Și este simlar acestei logici:

//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;
}

Dacă două mesaje de la diferite persoane sunt trimise într-un singur moment sunt observarea următoare. Funcția de apel checkAnswer nu este în coada de așteptare (l-am înțeles prin înregistrarea procesului de executare cu Logarea la dosar). De exemplu, acesta poate fi numit la cerere 2 (cerere de la Facebook), în timp ce cererea 1 nu este finalizată. Și din cauza asta (nu sunt sigur 100%), variabila $ id-ul nu este întotdeauna la fel și am executarea algoritm greșit ... Fișierul de logare de începere și de oprire este aici:

///////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////////////////////////

Sunt de lucru cu apache2 și php7 și este prima mea aplicație cu webservices. Ați putea da orice indiciu cum este posibil pentru a remedia problema?

Publicat 31/01/2017 la 13:44
sursa de către utilizator

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