#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. Спасибо. Это именно то, что я искал. Похоже, что мое поле не фиксируется интерфейсной формой. Мне придется продолжить расследование. Но это выгрузило все на пользовательский объект. Спасибо!