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

问题描述 投票:0回答:1

我有一个名为user的对象。

$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) "[email protected]"
        ["user_pass"]=>
        string(34) "$P$fdsa4r3wafs43"
        ["user_nicename"]=>
        string(19) "test-com"
        ["user_email"]=>
        string(20) "[email protected]"
        ["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)
    }

任何和所有的帮助表示赞赏

php arrays wordpress object
1个回答
1
投票

你在$user->profile_previous_experience的输出中没有var_dump字段,因为这个值是由__get()类的“magic method”WP_User返回的。

我假设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

© www.soinside.com 2019 - 2024. All rights reserved.