如何访问PHP对象中的信息


How to access information in PHP object

我尝试了很多方法,但我不习惯处理如此复杂的对象。如何访问"案例处置"以便将其保存到变量中?下面是对象的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"`

我认为:

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

$CaseData是一个对象,而不是数组,您可以使用->而不是[]来访问类属性。不幸的是,$caseData而非$CaseData)是$CaseData对象的私有属性,因此您只能从类内部访问它。

您可以公开$caseData属性,还是添加getCaseData()方法$CaseData类?类似的东西

class CaseData
{
    // ... existing code ...
    public function getCaseData()
    {
        return $this->caseData;
    }
}

然后,您可以通过以下操作进入"案例处置":

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

更好的是,在CaseData类中添加一个getCaseDisposition()方法,这样您就可以执行以下操作:

$CaseData->getCaseDisposition();

您的$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));

我想你可能想要:

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

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