Не удается получить доступ к пустому свойству - Sendgrid


Попытка использовать API Sendgrid (работает на bluemix) для автоматической отправки электронных писем.

$sendgrid_username = 'XXXXXXXXX';
$sendgrid_password = 'XXXXXXXXXXXXXXX';
$to                = $_SESSION['emailto'];
$from              = "[email protected]";
$sendgrid = new SendGrid($sendgrid_username, $sendgrid_password, array("turn_off_ssl_verification" => true));
$email    = new SendGrid\Email();
$email->addTo($to)->
       setFrom($from)->
       setSubject('Password Reset')->
       setHtml("<b>A new password has been set for the user: %mailto%.<br> The new password is:                                                                            %pass%<br><br></b>")->
       addSubstitution("%mailto%", array($_SESSION['emailto']))->
       addSubstitution("%pass%", array($random_pass_clear))->
       addHeader('X-Sent-Using', 'SendGrid-API')->
       addHeader('X-Transport', 'web')->
$response = $sendgrid->send($email); //this is line 21

Я использовал пример кода из Sendgrid, и все работает (отправляется электронное письмо). Однако я получаю 2 ошибки:

УВЕДОМЛЕНИЕ PHP: Неопределенный переменный ответ в строке 21
ФАТАЛЬНАЯ ОШИБКА PHP: Не удается получить доступ к пустому свойству в строке 21

Я никогда раньше не сталкивался со второй ошибкой, и я немного запутался в том, что происходит... есть идеи, куда я пошел неправильно?

Author: chris85, 2015-09-03

1 answers

addHeader('X-Transport', 'web')-> этот избыток T_OBJECT_OPERATOR (->) на 20-й линии ваш плохой парень.

Он пытается использовать переменную $response в объекте $email в строке 21.

Игнорируя предыдущую цепочку, он, по сути, пытается сделать это:

$email->$response = $sendgrid->send($email);

Отправка выполнена, но не удается поместить результат метода в переменную $email->$response ( Невозможно получить доступ к пустому свойству ), потому что $email->$response никогда не определяется (Неопределенная переменная)

 5
Author: Timmetje, 2015-09-03 15:08:05