从PHP中的$ _POST对象获取键/值的最佳方式是什么?

问题描述:

我有下面的对象被发布到PHP服务器。

payload={ 
    "sms_messages": [ 
     { 
      "created": "Tue, 08 Jan 2013 23:25:08 +0000" 
      "id": "5e8dd0d21e4b615e588e88848279634a", 
      "from": "xxxxxxxxxxx", 
      "destination": "xxxxxxxxxx", 
      "message": "Hi. This is an inbound message" 
     } 
    ] 
} 

我想回显'from'键,但是我不确定如何在PHP中执行此操作。

我的猜测是这样的:

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
echo $_POST['payload']['sms_messages']['from']; 
} 

然而,这会返回一个错误:

Illegal string offset 'sms_messages' 

$payload = json_decode(file_get_contents('php://input')); 
if ($payload && isset($payload->sms_messages) && is_array($payload->sms_messages)) { 
    foreach($payload->sms_messages as $msg) { 
    // handle each message here, e.g. by accessing $msg->from 
    print_r($msg); // debug output 
    } 
}