podivné chování proměnných v PHP

hlasů
0

Píši o Chatbot na facebooku pomocí PHP. Dotaz z facebooku zpracovává prostřednictvím souboru php. A to je simlar se touto logikou:

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

Pokud se dvě zprávy z různých osob, jsou předány v jedné chvíli jsem pozoroval další. Volání funkce checkAnswer není ve frontě (Chápal jsem to tím, že zaznamená tento proces spuštění protokolování do souboru). Například to může být nazýváno požádání 2 (žádost od facebooku), zatímco požadavek 1 není dokončena. A protože to (nejsem si jist, 100%), proměnná $ id není vždy stejné a mám špatný výkon algoritmu ... protokolování soubor spuštění a zastavení je zde:

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

Já pracuji s apache2 a php7 a je to moje první aplikace s webservices. Mohl byste dát žádné ponětí, jak je možné, aby to opravit?

Položena 31/01/2017 v 13:44
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

podivné chování proměnných v PHP

hlasů
0

Píši o Chatbot na facebooku pomocí PHP. Dotaz z facebooku zpracovává prostřednictvím souboru php. A to je simlar se touto logikou:

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

Pokud se dvě zprávy z různých osob, jsou předány v jedné chvíli jsem pozoroval další. Volání funkce checkAnswer není ve frontě (Chápal jsem to tím, že zaznamená tento proces spuštění protokolování do souboru). Například to může být nazýváno požádání 2 (žádost od facebooku), zatímco požadavek 1 není dokončena. A protože to (nejsem si jist, 100%), proměnná $ id není vždy stejné a mám špatný výkon algoritmu ... protokolování soubor spuštění a zastavení je zde:

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

Já pracuji s apache2 a php7 a je to moje první aplikace s webservices. Mohl byste dát žádné ponětí, jak je možné, aby to opravit?

Odpovězeno 31/01/2017 v 13:44
zdroj uživatelem

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