2012-05-10 6 views
1

これは本当に不格好なようだ:配列キーが存在し、その値を保存するかどうかをPHPがテストする最も簡単な方法は何ですか?

if (empty($xml['soap:Envelope']['soap:Body']['SendPurchasesResponse']['PurchasesResponse']['Status']['Code'])) { 
    $status = $xml['soap:Envelope']['soap:Body']['SendPurchasesResponse']['PurchasesResponse']['Status']['Code']; 
} 

は、これらの配列のキーの一部が欠落していることをイベントで「未定義のインデックス」エラーを処理するためのより良い方法はありますか?あなたが推測しているように、この配列はXMLベースのAPIから来ており、私の応答を信頼できません。

は、あなたが使用してエラーを抑制する使用して「@」される警官が出ていると思います:

$status = @$xml['soap:Envelope']['soap:Body']['SendPurchasesResponse']['PurchasesResponse']['Status']['Code']; 
+0

エラーを抑制しないでください。引用された複製で回答を使用します。 – webbiedave

答えて

0

どうでしょうあなたのためにこの作品?

try { 
    $status = $xml['soap:Envelope']['soap:Body']['SendPurchasesResponse']['PurchasesResponse']['Status']['Code']; 
} catch (Exception $e) { 
    $status = "" 
} 
+0

私はそれが好きです!私はPHP Noticeエラーが例外として捕捉されるとは考えていませんでした。 – weotch

関連する問題