За последние 24 часа нас посетили 19063 программиста и 1878 роботов. Сейчас ищут 811 программистов ...

вопрос экстрасенсам

Тема в разделе "PHP для новичков", создана пользователем vikrorpert, 18 июл 2017.

  1. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    использую guzzle
    кусок кода
    Код (Text):
    1. $response = $client->get('url', [
    2.             'on_stats' => function (TransferStats $stats) use (&$url) {
    3.                 var_dump($stats->getResponse()->getStatusCode());exit; //этот код работает выводит int(302)
    4.                 if ($stats->getResponse()->getStatusCode() == 302) { //это не работает
    5.                     throw new Exception(__FUNCTION__ . ' нужно залогиниться');
    6.                 }
    7.             }
    8.         ]);
    строка if ($stats->getResponse()->getStatusCode() == 302) кидает ошибку Call to a member function getStatusCode() on null
    как такое возможно? пхп 7
    getStatusCode() делает return $this->statusCode
     
  2. villiwalla

    villiwalla Активный пользователь

    С нами с:
    14 дек 2016
    Сообщения:
    471
    Симпатии:
    70
    PHP:
    1. $stats = null
    2. // или
    3. $stats->getResponse() = null
     
  3. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    тогда почему так работает
    var_dump($stats->getResponse()->getStatusCode());exit;
    выводит int(302)
     
  4. villiwalla

    villiwalla Активный пользователь

    С нами с:
    14 дек 2016
    Сообщения:
    471
    Симпатии:
    70
    попробуй так
    PHP:
    1. $res = $stats->getResponse();
    2. echo $res->getStatusCode();
     
  5. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    оказалось что мое исключение перехватывается, и заново вызывается замыкание on_stats
    вот только кто перехватывает и где не понятно
     
  6. villiwalla

    villiwalla Активный пользователь

    С нами с:
    14 дек 2016
    Сообщения:
    471
    Симпатии:
    70
    Брейкпоинт и дебаж
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ох уж эти исключения