Как я могу прочитать этот результат в PHP?

Как я могу прочитать этот результат с помощью PHP? Это print_r результата запроса:

object(PhpSigep\Services\Result)[687]
  protected 'isSoapFault' => boolean false
  protected 'errorCode' => null
  protected 'errorMsg' => null
  protected 'result' => 
    array (size=38)
      0 => 
        object(PhpSigep\Model\CalcPrecoPrazoResposta)[730]
          protected 'servico' => 
            object(PhpSigep\Model\ServicoDePostagem)[731]
              ...
          protected 'valor' => float 12.28
          protected 'prazoEntrega' => int 5
          protected 'valorMaoPropria' => float 0
          protected 'valorAvisoRecebimento' => float 0
          protected 'valorValorDeclarado' => float 0
          protected 'entregaDomiciliar' => boolean true
          protected 'entregaSabado' => boolean false
          protected 'erroCodigo' => int 0
          protected 'erroMsg' => null
          protected '_failIfAtributeNotExiste' => boolean true
      1 => 
        object(PhpSigep\Model\CalcPrecoPrazoResposta)[732]
          protected 'servico' => 
            object(PhpSigep\Model\ServicoDePostagem)[733]
              ...
          protected 'valor' => float 22.9
          protected 'prazoEntrega' => int 5
          protected 'valorMaoPropria' => float 0
          protected 'valorAvisoRecebimento' => float 0
          protected 'valorValorDeclarado' => float 0
          protected 'entregaDomiciliar' => boolean true
          protected 'entregaSabado' => boolean false
          protected 'erroCodigo' => int 0
          protected 'erroMsg' => null
          protected '_failIfAtributeNotExiste' => boolean true

Я хотел бы прочитать массив, я пытаюсь $result->result, $result['result'] и другие комбинации, но мне действительно не удалось его прочитать. Может кто-то мне помочь, пожалуйста?

какой результат вы хотите извлечь?

Yassine CHABLI 02.04.2019 19:55

Мне нужен массив с «доблестью» и «празоэнтрега».

Rodrigo 02.04.2019 20:00
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
33
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  • Во-первых, проверьте, есть ли общедоступный метод, такой как получитьрезультат(), в определении класса.

  • Если вы не можете изменить определение класса, используйте Reflection следующим образом:

Пример кода:

function accessProtected($obj, $prop) {
  $reflection = new ReflectionClass($obj);
  $property = $reflection->getProperty($prop);
  $property->setAccessible(true);
  return $property->getValue($obj);
}

Вызов метода:

$data = accessProtected($result,"result");

Чтобы получить доступ к данным indise, вызовите функцию рекурсивно.

если вы хотите получить доблесть и празоэнтрега

foreach($data as $CalcPrecoPrazoResposta){
    $valor = accessProtected($CalcPrecoPrazoResposta,"valor");
    $prazoEntrega = accessProtected($CalcPrecoPrazoResposta,"prazoEntrega");
  echo $valor;
  echo $prazoEntrega;
}

Другие вопросы по теме