2017-09-24 107 views
0

我想學習如何訪問數組中的對象。例如,我如何訪問該名稱? [name] =>每年會員。如何使用對象訪問數組?

Array 
(
    [0] => WC_Memberships_User_Membership Object 
     (
      [id] => 56325 
      [plan_id] => 55119 
      [plan] => WC_Memberships_Membership_Plan Object 
       (
        [id] => 55119 
        [name] => Yearly Membership 
        [slug] => yearly-membership 
        [post] => WP_Post Object 
         (
          [ID] => 55119 
          [post_author] => 4 
          [post_date] => 2016-12-01 00:18:27 
          [post_date_gmt] => 2016-12-01 00:18:27 
          [post_content] => 
          [post_title] => Yearly Membership 
          [post_excerpt] => 
          [post_status] => publish 
          [comment_status] => closed 
          [ping_status] => closed 
          [post_password] => 
          [post_name] => yearly-membership 
          [to_ping] => 
          [pinged] => 
          [post_modified] => 2017-09-20 01:16:15 
          [post_modified_gmt] => 2017-09-20 01:16:15 
          [post_content_filtered] => 
          [post_parent] => 0 
          [guid] => https://sharpescout.bdanzer.com/?post_type=wc_membership_plan&p=55119 
          [menu_order] => 0 
          [post_type] => wc_membership_plan 
          [post_mime_type] => 
          [comment_count] => 0 
          [filter] => raw 
         ) 

        [access_method_meta:protected] => _access_method 
        [default_access_method:protected] => unlimited 
        [access_length_meta:protected] => _access_length 
        [access_start_date_meta:protected] => _access_start_date 
        [access_end_date_meta:protected] => _access_end_date 
        [product_ids_meta:protected] => _product_ids 
        [members_area_meta:protected] => _members_area_sections 
        [email_content_meta:protected] => _email_content 
        [rules:WC_Memberships_Membership_Plan:private] => Array 
         (
         ) 

       ) 

      [user_id] => 317 
      [status] => wcm-active 
      [post] => WP_Post Object 
       (
        [ID] => 56325 
        [post_author] => 317 
        [post_date] => 2017-09-19 04:21:38 
        [post_date_gmt] => 2017-09-19 04:21:38 
        [post_content] => 
        [post_title] => Auto Draft 
        [post_excerpt] => 
        [post_status] => wcm-active 
        [comment_status] => closed 
        [ping_status] => closed 
        [post_password] => um_59c09b4d1c87e 
        [post_name] => auto-draft-9 
        [to_ping] => 
        [pinged] => 
        [post_modified] => 2017-09-19 04:21:38 
        [post_modified_gmt] => 2017-09-19 04:21:38 
        [post_content_filtered] => 
        [post_parent] => 55119 
        [guid] => https://sharpescout.bdanzer.com/?post_type=wc_user_membership&p=56325 
        [menu_order] => 0 
        [post_type] => wc_user_membership 
        [post_mime_type] => 
        [comment_count] => 0 
        [filter] => raw 
       ) 

      [product:WC_Memberships_User_Membership:private] => 
      [type:protected] => manually-assigned 
      [start_date_meta:protected] => _start_date 
      [end_date_meta:protected] => _end_date 
      [cancelled_date_meta:protected] => _cancelled_date 
      [paused_date_meta:protected] => _paused_date 
      [paused_intervals_meta:protected] => _paused_intervals 
      [product_id_meta:protected] => _product_id 
      [order_id_meta:protected] => _order_id 
      [previous_owners_meta:protected] => _previous_owners 
      [renewal_login_token_meta] => _renewal_login_token 
     ) 

) 

我使用的函數被稱爲:wc_memberships_get_user_active_memberships();我在我的代碼設置:

$get_user_membership = wc_memberships_get_user_active_memberships(); 

我試圖呼應出甚至只是ID

echo $get_user_membership[0]->[id]; 

但我得到一個錯誤,所以我知道我做錯了什麼。

如何訪問這些值中的每一個?任何幫助將是非常有益的

編輯: 這裏是我在試圖通過圍繞陣列[]運行拿到ID

Parse error: syntax error, unexpected '[', expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in (removed filename) on line 325 
+0

閱讀[數組](http://php.net/manual/en/language.types.array.php),並且不要退出,直到到達該部分[*「使用方括號語法訪問數組元素」*(http: //php.net/manual/en/language.types.array.php#language.types.array.syntax.accessing)。並閱讀[對象](http://php.net/manual/en/language.types.object.php)。語法' - > []'是這兩個概念的無效組合。 – axiac

回答

0

你可以做到這一點,對象{}這樣的例子中得到了錯誤:

var_dump($get_user_membership[0]->{'plan'}->{'name'}); 
+0

謝謝!當我這樣做時,最終確實爲我工作:echo $ get_user_membership [0] - > {'plan'} - > {'name'}; 。是否有其他方法訪問相同的東西,或者這是最好的解決方案? – bdanzer

+0

'$ get_user_membership [0] - > {'plan'} - > {'name'}'是編寫'$ get_user_membership [0] - > plan-> name'的一種複雜方式。它不回答這個問題。 – axiac

+0

@axiac問題是:*我如何訪問這些值中的每一個?*並且回答者提供了一個解決方案,因此我認爲它實際上是一個有效的答案,不管它是否以冗長的方式完成不是問題。 – Script47

0

我會說:

var_dump($get_user_membership[0]->plan->name); 
+0

謝謝!這個工作也很好,而且比給出的其他答案要乾淨得多。我很感激。這是最好的解決方案嗎?或者是否有更好的方法來訪問數據? – bdanzer

+0

請留在主題上,答案不應該用於查詢或提問。 – Script47

+0

@bdanzer我會使用大括號來訪問對象的屬性:'$ obj - > {$ variable}'; '$ OBJ - > { 「KEY_ $變量」}'; '$ obj - > {'space inproperty'}'。否則我想保持簡單'$ obj-> property' –