2011-06-01 46 views
0

我有一個數組,其中包含不同的數據類型。那些是int和object。該數組如下。如何在值爲對象時獲取數組內容?

Array ( 
    [isHR] => 1 
    [1] => Array ( 
    [0] => MyQuota Object ( 
     [year:private] => 2011 
     [leaveId:private] => L001 
     [employeeId:private] => 
     [NoOfDays:private] => 7.00 
     [leaveName:private] => Casual Leave 
     [Message:private] => 
    ) 
    [1] => MyQuota Object ( 
     [year:private] => 2011 
     [leaveId:private] => LTY002 
     [employeeId:private] => 
     [NoOfDays:private] => 55.00 
     [leaveName:private] => Priviledged Leave 
     [Message:private] => 
    ) 
) 
    [Length] => 8 
) 

這裏我需要獲取並設置名爲「NoOfDays:private」的數組屬性。我怎樣才能得到這個?

+2

其私有財產的對象,所以你不能訪問它 – Ibu 2011-06-01 06:53:18

回答

1

添加getter和setter方法:

class MyQuota 
{ 
    private $year; 
    private $leaveId; 
    private $employeeId; 
    private $NoOfDays; 
    private $leaveMessage; 
    private $Message; 

    /* more code */ 

    public function getNoOfDays() 
    { 
     return $this->NoOfDays; 
    } 

    public function setNoOfDays($noOfDays) 
    { 
     $this->NoOfDays = $noOfDays; 
    } 

    /* more getters and setters */ 

} 

而且,隨着你的陣列,像這樣使用:

$days = $array[0][1]->getNoOfDays(); 
1

您可能無權訪問對象的私有屬性。要麼讓它們公開,要麼定義getter和setter方法。

訪問公共屬性:

echo $arr[1][0]->NoOfDays