如何转储整个对象及其值?

时间:2019-03-21 00:55:02

标签: php arrays wordpress object

我有一个称为用户的对象。

$user = $data['user'];

我可以通过执行$user->first_name直接访问它的属性,然后我会得到值。但是,我需要查看对象中的所有内容,因为我想挑选数据。

我尝试了几种不同的方法,但是没有什么能满足我的需求。我已经尝试过foreachget_object_vars,但仍然无法正常使用。

以下是我在使用var_dump($user)时看到的内容的转储:

        object(WP_User)#3017 (8) {
      ["data"]=>
      object(stdClass)#2997 (10) {
        ["ID"]=>
        string(3) "215"
        ["user_login"]=>
        string(20) "test@gmail.com"
        ["user_pass"]=>
        string(34) "$P$fdsa4r3wafs43"
        ["user_nicename"]=>
        string(19) "test-com"
        ["user_email"]=>
        string(20) "test@gmail.com"
        ["user_url"]=>
        string(0) ""
        ["user_registered"]=>
        string(19) "2019-03-21 00:58:47"
        ["user_activation_key"]=>
        string(0) ""
        ["user_status"]=>
        string(1) "0"
        ["display_name"]=>
        string(26) "Full display"
      }
      ["ID"]=>
      int(215)
      ["caps"]=>
      array(1) {
        ["um_instructor"]=>
        bool(true)
      }
      ["cap_key"]=>
      string(15) "wp_capabilities"
      ["roles"]=>
      array(1) {
        [0]=>
        string(13) "um_instructor"
      }
      ["allcaps"]=>
      array(2) {
        ["read"]=>
        bool(true)
        ["um_instructor"]=>
        bool(true)
      }
      ["filter"]=>
      NULL
      ["site_id":"WP_User":private]=>
      int(1)
    }

任何人都将受到感激

1 个答案:

答案 0 :(得分:1)

$user->profile_previous_experience的输出中没有var_dump字段,因为此值是由WP_User类的“魔术方法” __get()返回的。

我假设profile_previous_experience是用户的自定义字段。您可以使用get_user_meta函数来获取自定义字段的值:

$user_experience = get_user_meta($user->ID, 'profile_previous_experience');

您还可以使用相同的功能(通过省略第二个参数)来获取all the customfields

$user_cfs = get_user_meta($user->ID);

如果您不熟悉PHP中的“魔术方法”,请查看官方PHP文档中的properties overloading examples