如何访问PHP对象中的信息

时间:2014-10-02 16:12:14

标签: php arrays json object

我已经尝试了很多东西,但我不习惯处理这个复杂的物体。我如何访问" Case Disposition"所以我可以将它保存到变量?下面是对象的var_dump的一部分(它很长)。

我已尝试将其转换为数组并执行类似下面的操作但只返回空。

$myarray['CaseData']['Case Information']['Case Disposition']; 

这是我发送的对象的var_dump的一部分。

`object(CaseData)#1 (1) {
  ["caseData":"CaseData":private]=>
  array(4) {
    ["Case Information"]=>
    array(10) {
      ["Case Disposition"]=>
      string(5) "TRIAL"
      ["Case Number"]=>
      string(10) "1D00297207"
      ["Case Status"]=>
      string(6) "CLOSED"
      ["Case Type"]=>
      string(8) "CRIMINAL"
      ["Court System"]=>
      string(54) "DISTRICT COURT FOR MONTGOMERY COUNTY - CRIMINAL SYSTEM"
      ["District Code"]=>
      string(2) "06"
      ["Document Type"]=>
      string(7) "SUMMONS"
      ["Issued Date"]=>
      string(10) "11/09/2013"
      ["Location Code"]=>
      string(2) "02"
      ["Tracking No"]=>
      string(12) "131001793941"
    }
    ["Charge and Disposition Information"]=>
    array(2) {
      [0]=>
      array(17) {
        ["Amended Date"]=>
        string(0) ""
        ["Amt Suspended"]=>
        array(3) {
          ["CICF"]=>
          string(5) "$0.00"
           ["Court Costs"]=>
          string(5) "$0.00"
          ["Fine"]=>
          string(5) "$0.00"
        }
        ["CJIS Code"]=>
        string(6) "2 2411"`

3 个答案:

答案 0 :(得分:1)

我想:

$CaseData->caseData['Case Information']['Case Disposition'];

$CaseData是一个对象,而不是数组,您可以使用->而不是[]来访问类属性。很遗憾,$caseData $CaseData)是$CaseData对象的私有属性,因此您只能从类中访问它。< / p>

您可以公开$caseData属性,还是在getCaseData()课程中添加$CaseData方法?像

这样的东西
class CaseData
{
    // ... existing code ...

    public function getCaseData()
    {
        return $this->caseData;
    }
}

然后你可以通过以下方式进入'案件处置':

$CaseData->getCaseData()['Case Information']['Case Disposition'];

更好的是,在getCaseDisposition()课程中添加CaseData方法,您就可以这样做:

$CaseData->getCaseDisposition();

答案 1 :(得分:1)

您的$myarray变量由CaseData个实例组成。必须使用->访问实例属性,使用方括号访问数组属性。

因此,您所寻找的价值必须以这种方式获取:

$myarray->caseData['Case Information']['Case Disposition'];

编辑:我收到警告,$caseData是私有财产,因此您无法直接访问它。该实例可能具有访问器方法,因此您可以使用它访问实例的属性。类似的东西:

$data = $myarray->getCaseData();
$data['Case Information']['Case Disposition']; // the info you need

或者,以更简洁的方式(取决于您的PHP版本):

$myarray->getCaseData()['Case Information']['Case Disposition']; // the info you need

您可以使用以下内容列出实例的可用公共方法:

print_r(get_class_methods($myarray));

答案 2 :(得分:0)

我想你可能想要:

$foo = $myarray['caseData']['Case Information']['Case Disposition']; 

发布原始数组也可能有所帮助。