2013-01-07 101 views
0

比方說,這是我的檢索對象$myObj我該如何解析這個數組

Array 
(
    [0] => xl_oio_0_1_Mytitle Object 
       (
         [_unknown:protected] => 
         [header_:protected] => Header Object 
           (
             [_unknown:protected] => 
             [myId_:protected] => my_title 
             [userId_:protected] => 
             [createTime_:protected] => 
           ) 

         [id_:protected] => ID Object 
           (
             [_unknown:protected] => 
             [id_:protected] => ingy3spdzE1uiMtCYRSlmwtX 
           ) 

         [dataType_:protected] => 2 
         [picSize_:protected] => 8669 
         [userId_:protected] => ID Object 
           (
             [_unknown:protected] => 
             [id_:protected] => ingy3spdzE1uiMtCYRSlmwtX 
           ) 

         [fName_:protected] => Joe 
         [lName_:protected] => Smith 
         [cDate_:protected] => RxyascTe89Xe4 
       ) 
    [1] => etc... 

,我試圖解析名稱和日期,香港專業教育學院嘗試沒有運氣以下。

$i=0; 
while($i < 20){ 

    // Notice: Trying to get property of non-object 
    //$firstName = $myObj->xl_oio_0_1_Mytitle->fName_; 

    // Fatal error: Cannot use object of type 
    //$firstName = $myObj[$i]['fName_']; 

    // Parse error: syntax error, unexpected T_OBJECT_OPERATOR 
    $firstName = $myObj->xl_oio_0_1_Mytitle(object->fName_); 
    echo $firstName . '<br />'; 
    $i++; 
} 

回答

4

答案很簡單:你不能訪問這些值的任何除非對象爲他們提供了getter方法。

嘗試$myObj[$i]->getFName() - 這是獲得fName屬性的最有可能的名稱。

如果你不喜歡的試錯要不是看在對象或使用反射的代碼來獲取的對象所擁有的方法列表:

$ref = new ReflectionObject($myObj[0]); 
print_r($ref->getMethods());