找出生成的数组中的值是否存在而未通知

时间:2013-05-02 16:55:12

标签: php

我有一个数组$beerArray,它是从解析来自JSON API的数据并将其放入PHP数组中获得的。有一些值,比如$ beer_name,我希望它们在JSON数据中,但并不总是存在,导致该值不存在于数组中。我已经设置了一些if ... 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 个答案:

答案 0 :(得分:1)

使用isset()函数。只需传递您希望看到的变量是否已设置,如果变量存在,此函数将返回true,否则返回false。

例如,将if语句更改为:

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

如果没有设置beer_name,则执行第一个块。如果第二个块具有名称

,则执行第二个块

以下是文档:http://php.net/manual/en/function.isset.php