Проверка свойства существует - преобразование json в stdObject и вставка значения или нуля в db - PullRequest
2 голосов
/ 26 октября 2011

Я вызываю API и обрабатываю ответ JSON, который затем декодируется в stdObject. Затем я вставляю запись в базу данных со значением или NULL. Однако я обнаружил, что мой запрос не всегда возвращается со значением

Пример:

[1] => stdClass Object
(
    [created_at] => Wed, 26 Oct 2011 09:58:47 +0000
    [entities] => stdClass Object
        (
        )

    [from_user] => powpowpow
    [from_user_id] => 12345
    [from_user_id_str] => 12345
    [geo] => 
    [location] => UK
    [id] => 1245
    [id_str] => 12345
    [iso_language_code] => en
    [metadata] => stdClass Object
        (
            [result_type] => recent
        )

    [profile_image_url] => http://a3.twimg.com/profile_images//.jpg
    [source] => <a href="http://twitter.com/">web</a>
    [text] => some message!
    [to_user_id] => 
    [to_user_id_str] => 
)

Я обнаружил, что некоторые свойства не возвращаются при каждом вызове, местоположении, to_user_id и screen_name (которые даже не были возвращены в этом вызове)

Я создал метод;

function _nullify($var){
    if(isset($var)){
        return $var = empty($var) ? NULL : $var;
    } else {
        return NULL;
    }
}

Это должно было позволить мне проверить, существует ли свойство, и если оно существует, если есть значение, вернуть его, в противном случае вернуть NULL, чтобы я мог ввести это в базу данных

Однако этот метод, похоже, не работает.

Я надеюсь, что вы, ребята, можете помочь,

Большое спасибо,

Andy

1 Ответ

7 голосов
/ 26 октября 2011

На мой взгляд, вы пытаетесь проверить, существует ли ключ в вашем объекте, Для этого вы можете использовать функцию PHP property_exists .

function _nullify($object, $key){
    if(property_exists($object, $key))
        return empty($object->$key) ? NULL : $object->$key;
    else
        return NULL;
}

Шай.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...