2017-09-24 142 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' –