-1

问这个问题我觉得很疯狂,但我就是找不到这个非常简单的问题的答案。

我有一个对象:print_r:

stdClass Object
(
    [formkey] => 1F9trPeu9DA4W0CjADN4a1fl3Jh682ZPF8remWB21RhI
    [draftResponse] => []
    [pageHistory] => 0
    [entry.358412101] => asdf
    [entry.898829644] => asdf
    [entry.2071756716] => asdf
    [entry.958924423] => asdf
)

var_dump:

object(stdClass)#1 (7) {
  ["formkey"]=>
  string(44) "1F9trPeu9DA4W0CjADN4a1fl3Jh682ZPF8remWB21RhI"
  ["draftResponse"]=>
  string(2) "[]"
  ["pageHistory"]=>
  string(1) "0"
  ["entry.358412101"]=>
  string(4) "asdf"
  ["entry.898829644"]=>
  string(4) "asdf"
  ["entry.2071756716"]=>
  string(4) "asdf"
  ["entry.958924423"]=>
  string(4) "asdf"
}

我想返回一个值。我这就是你应该做的事情:

return($objData['formkey']);

但这会返回 PHP 致命错误:不能使用 stdClass 类型的对象作为数组。我究竟做错了什么?

我将数据作为 json-objec 发布到服务器,然后将其转换如下:

$data = file_get_contents("php://input");
$objData = json_decode($data);
4

1 回答 1

2

[key]语法用于访问array.

从转储中可以看出,您有一个Object. 对象属性通过->key.

return $objData->formkey;

如果您想查看错误消息,请检查日志文件,或启用报告:如何在 PHP 中获取有用的错误消息?

于 2013-09-04T09:43:10.707 回答