2011-06-01 47 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