2013-05-02 2 views
0

У меня есть массив $beerArray, который получается из анализа данных из JSON API и помещения его в массив PHP. Существуют определенные значения, такие как $ beer_name, которые я ожидаю быть в данных JSON, но не всегда там, в результате чего это значение не существует в массиве. Я настроил некоторые, если ... ELSE заявления для корректировки этих случаев:Вывод, если значение в сгенерированном массиве существует без получения уведомления

if (!($beerArray->response->beer->beer_name)) { 
    do something 
    } 

else { 
    do something else 
    } 
} 

Это позволит избежать ошибок, как попытка присвоить переменной в качестве значения массива, не существует, но я все еще получаю этот досадный Примечание:

Notice: Undefined property: stdClass::$beer_name in /Users/x_/Documents/html/php/populatebeer.php on line 66 

Есть ли лучший способ структурировать мою логику, чтобы избежать этих уведомлений? Он заполняет журнал ложными срабатываниями, которых я бы хотел избежать.

ответ

1

Используйте функцию isset(). Просто передайте переменную, которую вы хотите видеть, установлена ​​или нет, и эта функция вернет true, если переменная существует или false, если она не указана.

Например, если изменить заявление:

if (!isset($beerArray->response->beer->beer_name)) { 

Первый блок выполняется, если нет набора beer_name. Второй блок выполняется, если у него есть имя

Вот эта документация: http://php.net/manual/en/function.isset.php

Смежные вопросы