2011-10-26 4 views
1

私はAPIを呼び出してJSON応答を処理してから、stdObjectにデコードします。次に、値またはNULLのいずれかを使用してレコードをdbに挿入します。しかし、私は常に値に戻って来ていない私の要求を見つけることだjsonをstdObjectに変換してdbに値または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; 
    } 
} 

これは、プロパティが存在するかどうかを確認するために私を許可している必要がありますし、そこにある場合それがない場合、値は、それはそうでないので、私は、DB

にそれを入力することができますNULLを返す返さしかし、この方法は、」doesnのうまくいくようです。

私はそれを見たよう

多くのおかげで、

アンディ

答えて

6

が、あなたはあなたが使用することができ 、キーはあなたのオブジェクト内に存在するかどうかを確認しようとしている、あなたたちは役立つことを願ってそのためにPHPのproperty_existsが機能します。

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

シャイ。

+0

どのように値を返すのですか? return $ object-> property(これらの$ object、$ key変数を使用してください)ありがとうbtw – Garbit

+0

愚かな質問私はちょうど行うことができます。 return $ object - > $ key :)もう一度Shaiに感謝します。これがベストプラクティスかどうかは誰にも分かりますか? – Garbit

+0

あなたは$ object - > {$ key}を返すことができます:) –

関連する問題