Как я могу выгрузить весь объект и его значения?

#php #arrays #wordpress #object

#php #массивы #wordpress #объект

Вопрос:

У меня есть объект с именем user.

 $user = $data['user'];
  

Я могу получить доступ к его свойствам напрямую, выполнив $user->first_name и я получу значение. Однако мне нужно видеть все внутри объекта, поскольку я хочу выбрать данные из списка.

Я пробовал несколько разных методов, но ничто не дает мне того, что мне нужно. Я пробовал foreach , get_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. Вы пробовали var_dump(); ?

2. ДА. К сожалению, я сделал это без какой-либо удачи. По-прежнему получаю только часть результатов.

3. var_dump() предназначен для отладки, он должен показывать все. можете ли вы привести нам какой-нибудь пример, в котором показана часть объекта?

4. Конечно. Я только что опубликовал это. Я все еще изучаю PHP, поэтому ценю терпение / помощь

5. Я не понимаю, вы сказали, что var_dump не работает, и вы показали результаты, которые явно означают, что это работает.

Ответ №1:

У вас нет $user->profile_previous_experience поля в выходных данных var_dump , потому что это значение возвращается «волшебным методом» __get() WP_User класса.

Я предполагаю, что profile_previous_experience это пользовательское поле пользователя. Вы можете использовать get_user_meta функцию для получения значения пользовательского поля:

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

Вы также можете извлечь все пользовательские поля с помощью той же функции (опустив второй параметр):

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

Если вы не знакомы с «волшебными методами» в PHP, взгляните на примеры перегрузки свойств в официальных документах PHP

Комментарии:

1. Спасибо. Это именно то, что я искал. Похоже, что мое поле не фиксируется интерфейсной формой. Мне придется продолжить расследование. Но это выгрузило все на пользовательский объект. Спасибо!