@Vanzent

Вытащить из json значение?

При проверке рекапчи на сервере приходит ответ от гугла:
{"success": false,"error-codes": ["invalid-input-response" ]}

Далее декодирование json ответа:
$recaptcha = json_decode($recaptcha);

Делаю
var_dump($recaptcha):
object(stdClass)#6 (2) {
  ["success"]=>
  bool(false)
  ["error-codes"]=>
  array(1) {
    [0]=>
    string(22) "invalid-input-response"
  }
}

Значение к 'success' получаю так:
$recaptcha->success
У меня не получается вытащить значение 'invalid-input-response'
Так $recaptcha->error-codes выводит 0 и тип integer
Так $recaptcha->error-codes[0] то же самое

Как это сделать, подскажите?
  • Вопрос задан
  • 137 просмотров
Решения вопроса 1
@alexalexes
Проблема обойти невалидное название свойства (так как используется дефис).
Используем магию именования свойства класса через переменную.
$recaptcha_property_name = 'error-codes';
echo $recaptcha->$recaptcha_property_name[0];
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
New_Horizons
@New_Horizons
Бред:
Либо так:
$recaptcha = json_decode($recaptcha, true);
echo $recaptcha['error-codes'][0];

Либо так:
$recaptcha = json_decode($recaptcha);
echo $recaptcha->{'error-codes'}[0];

Читаем про второй аргумент функции json_decode
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы