code: private static function objectValues($abs)
      {
          if ($abs['traverseValues']) {
              // probably Traversable
              return $abs['traverseValues'];
          }
          if ($abs['stringified']) {
              return $abs['stringified'];
          }
          if (isset($abs['methods']['__toString']['returnValue'])) {
              return $abs['methods']['__toString']['returnValue'];
          }
          if ($abs['className'] === 'Closure') {
              return $abs;
          }
          $values = $abs['properties'];
          foreach ($values as $k => $info) {
              if ($info['visibility'] !== 'public') {
                  unset($values[$k]);
              } else {
                  $values[$k] = $info['value'];
              }
          }
          return $values;
      }
docs: Get object abstraction's values
  if, object has a stringified or __toString value, it will bereturned
  
  @param array $abs object abstraction
  
  @return array|string