一次多个返回语句


multiple return statements at once?

我正在尝试开发一个聊天机器人。

我对功能有疑问。

下面是代码的一部分:

<?php
require_once 'bootstrap.php';
require_once CB_HOME.'/library/CommonFunctions.php';
class testBot extends AbstractCbRest{
  public function subscriptionCreated($userName){
    return "Welcome ";
  } 
  public function subscriptionDeleted($userName){
    return "Thanks  ";
  }
  public function messageReceived($from, $message){
    return "" ; // how to return multiple  here
  }

在消息接收函数中,我将实现聊天机器人功能。

每当我收到来自用户的消息时,我都会返回一些东西。为此,我将不得不运行一些 php 脚本并进行一些 api 调用。我将发送给用户的最终结果。

所有这些都需要大约 20-25 秒。

有没有办法发送多个返回语句?就像在进行 API 调用时,我可以向用户发送消息,然后等待实际结果到来,然后发送它?我想不出一种方法,因为一旦我发送了一条消息,我就无法返回一些东西,直到并且除非用户回复一些东西。

使用数组:

public function messageReceived($from, $message){
    return array(
        'Welcome',
        'Thanks',
        'Hello',
        'Whatever'
    );
}

甚至是关联数组

array(
    'msg1' => 'Welcome',
    'msg2' => 'Thanks',
    'msg3' => 'Hello',
    'msg4' => 'Whathever'
)

然后,您可以将特定消息与:

array['msg1']

您可以创建一个数组并返回:

public function messageReceived($from, $message){
  $retval = array();
  $retval[] = "message1";
  $retval[] = "message2";
  return $retval;
}

public function messageReceived($from, $message){
  return array("message1","message2");
}

听起来您需要考虑使用 AJAX,而不是在处理页面呈现时进行同步调用。