PHP注意:未定义的索引

我正在使用
Zendesk php class,以下功能用于删除附件.

/**
 * Delete one or more attachments by token or id
 * $params must include one of these:
 *        'token' - the token given to you after the original upload
 *        'id' - the id of the attachment
 *
 * @param array $params
 *
 * @throws MissingParametersException
 * @throws ResponseException
 * @throws \Exception
 *
 * @return bool
 */
public function delete(array $params) {
    if(!$this->hasAnyKey($params, array('id', 'token'))) {
        throw new MissingParametersException(__METHOD__, array('id', 'token'));
    }
    $endPoint = Http::prepare(($params['token'] ? 'uploads/'.$params['token'] : 'attachments/'.$params['id']).'.json');
    $response = Http::send($this->client, $endPoint, null, 'DELETE');
    if ($this->client->getDebug()->lastResponseCode != 200) {
        throw new ResponseException(__METHOD__);
    }
    $this->client->setSideload(null);
    return true;
}

根据评论,运行此功能时需要令牌或ID.

我尝试过使用id

$attachment = $client->attachments()->delete(array('id'=>'1187146218','token'));

然而,它一直在追逐异常

  PHP Notice:  Undefined index: token in /home/adam/web/srv11/public_html/vendor/zendesk/zendesk_api_client_php/src/Zendesk/API/Attachments.php on line 106
PHP Fatal error:  Uncaught exception 'Zendesk\API\ResponseException' with message 'Response to Zendesk\API\Attachments::delete is not valid. Call $client->getDebug() for details' in /home/adam/web/srv11/public_html/vendor/zendesk/zendesk_api_client_php/src/Zendesk/API/Attachments.php:109
Stack trace:
#0 /home/adam/web/srv11/public_html/functions/support-attachment-delete.php(15): Zendesk\API\Attachments->delete(Array)
#1 {main}
  thrown in /home/adam/web/srv11/public_html/vendor/zendesk/zendesk_api_client_php/src/Zendesk/API/Attachments.php on line 109

非常感谢您的帮助

最佳答案 你写这篇文章的方式

array('id'=>'1187146218','token')

实际上给出了这样一个数组:

array('id'=>'1187146218', 0 => 'token')

所以没有’令牌’索引.如果您改为,这应该有用

$attachment = $client->attachments()->delete(array('id'=>'1187146218','token' => NULL));
点赞