strano comportamento delle variabili in php

voti
0

Sto scrivendo il chatbot per Facebook utilizzando php. La query da Facebook sta elaborando attraverso il file php. Ed è simlar a quella logica:

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

Se due messaggi da parte di persone vengono inviati in un unico momento sto osservando successivo. La chiamata della funzione checkAnswer non è nella coda (ho capito registrando il processo di esecuzione con la registrazione di file). Ad esempio, può essere chiamato richiesta 2 (richiesta da facebook), mentre domanda 1 non è stata completata. E a causa di esso (non sono sicuro al 100%), la variabile $ id non è sempre la stessa e non ho l'esecuzione dell'algoritmo sbagliato ... Il file di log di avvio e l'arresto è qui:

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

Sto lavorando con apache2 e php7 ed è la mia prima applicazione con webservices. Potrebbe dare alcuna idea di come è possibile risolvere il problema?

È pubblicato 31/01/2017 alle 13:44
fonte dall'utente
In altre lingue...                            


1 risposte

strano comportamento delle variabili in php

voti
0

Sto scrivendo il chatbot per Facebook utilizzando php. La query da Facebook sta elaborando attraverso il file php. Ed è simlar a quella logica:

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

Se due messaggi da parte di persone vengono inviati in un unico momento sto osservando successivo. La chiamata della funzione checkAnswer non è nella coda (ho capito registrando il processo di esecuzione con la registrazione di file). Ad esempio, può essere chiamato richiesta 2 (richiesta da facebook), mentre domanda 1 non è stata completata. E a causa di esso (non sono sicuro al 100%), la variabile $ id non è sempre la stessa e non ho l'esecuzione dell'algoritmo sbagliato ... Il file di log di avvio e l'arresto è qui:

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

Sto lavorando con apache2 e php7 ed è la mia prima applicazione con webservices. Potrebbe dare alcuna idea di come è possibile risolvere il problema?

Risposto il 31/01/2017 a 13:44
fonte dall'utente

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