0

这个问题中,我在简化和形成有效的复杂 JSON POST 请求方面得到了帮助。但是,我现在在服务器端遇到了一些奇怪的行为。

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

在调试器中,每个最外层数组和位置数组都有 type stdClass,而 links 数组有 type array[n]。但是,我无法访问内部的任何信息$post。为什么是这样?

4

1 回答 1

4

尝试true作为第二个参数传递json_decode(),以便将其转换为实际数组。

$post = json_decode($_POST['json'], true);
于 2012-06-20T19:59:48.613 回答