2014-10-02 56 views
1

我已經嘗試了一些東西,但我不習慣處理這個複雜的對象。如何訪問「案例處置」,以便將其保存到變量中?下面是對象的var_dump的一部分(它很長)。如何訪問PHP對象中的信息

我試着將它轉換爲一個數組,並做下面的事情,但只是返回空。

$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"` 
+1

謙虛的問題:這是什麼'[「caseData」:「CaseData」:private]'? – loveNoHate 2014-10-02 16:14:44

+0

try $ myarray-> CaseData ['Case Information'] ['Case Disposition'] – 2014-10-02 16:16:28

+1

PHP有一些很棒的[關於對象的文檔](http://php.net/manual/en/language.oop5.php)。你有看過嗎? – 2014-10-02 16:16:51

回答

1

我想:

$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']; 

更妙的是,添加getCaseDisposition()方法將CaseData類,這樣你就可以這樣做:

$CaseData->getCaseDisposition(); 
+0

謝謝你不明白私人的私人限制。我會讓OP添加一個類來返回正確的信息,以便我可以使用它。謝謝! – user3157910 2014-10-02 16:49:30

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)); 
+1

它是專用的,所以你不能訪問它... – 2014-10-02 16:19:15

+1

也許這個實例有一個訪問方法,比如'getCaseData()'或者其他東西。 OP必須使用var_dump(get_class_methods($ myarray))來看公共方法;' – rodrigorigotti 2014-10-02 16:22:12

0

我認爲你可能想要:

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

也可能有助於將原始數組發佈。

+1

看起來'caseData'是一個對象,而不是數組 - 它也是私有的。 – halfer 2014-10-02 16:34:39