2012-06-20 35 views
0

this問題中,我有助於簡化和形成有效的複雜JSON POST請求。但是,我現在遇到了一些奇怪的行爲服務器端。解碼JSON和無法訪問的變量

function postTour(){ 
    $post = json_decode($_POST['json']; 
    $success = false; 

    for ($i=0; $i<count($post); $i++){ 
    $filename = $post[i]['location']['filename']; 

    } 
} 

這裏,$filename從不初始化並從未顯示爲在調試器的變量。 $post返回格式的多級陣列

$post[3] 
    [0] => 
     location = [ 5 key/value pairs ] 
     links = one to n arrays 

    [1] => 
     location = [ 5 key/value pairs], 
     links = one to n arrays 

在調試程序,每個最外側陣列和位置陣列具有類型stdClass,而鏈接陣列具有類型array[n]。但是,我無法訪問$post中的任何信息。爲什麼是這樣?

回答

4

嘗試通過true作爲json_decode()的第二個參數,以便將其轉換爲實際的數組。

$post = json_decode($_POST['json'], true); 
+0

++++++++++++++ 1 –

+0

呵呵呵感謝@RPM – Kristian

+0

感謝您的。我在文檔中看到了布爾選項,但無論布爾標誌如何,給出的示例都是相同的。因此,我並不十分欣賞這種影響。 – Jason