【发布时间】:2019-12-30 23:18:41
【问题描述】:
我在访问受保护的财产时遇到问题。我正在尝试查询 wordpress 的数据库表。以下是我的代码:
<?php
$table_name = 'wp_wp_pro_quiz_question';
$current_quiz_id = $wpdb->get_var("SELECT max(quiz_id) as quiz_id FROM $table_name");
$results = $wpdb->get_results( "SELECT * FROM $table_name where quiz_id = $current_quiz_id");
if(!empty($results)){
foreach($results as $row){?>
// print_r($row->answer_data);
print_r(unserialize($row->answer_data));
$answer_data = unserialize($row->answer_data);
$answers = array();
foreach($answer_data as $obj) {
$answers[] = $obj->get_answer;
}
print_r($answers);
}
?>
print_r(unserialize($row->answer_data)) 给出以下结果:
Array (
[0] => WpProQuiz_Model_AnswerTypes Object ( [_answer:protected] => 26 [_html:protected] => 1 [_points:protected] => 1 [_correct:protected] => 1 [_sortString:protected] => [_sortStringHtml:protected] => 1 [_mapper:protected] => )
[1] => WpProQuiz_Model_AnswerTypes Object ( [_answer:protected] => 6 [_html:protected] => 1 [_points:protected] => 1 [_correct:protected] => [_sortString:protected] => [_sortStringHtml:protected] => 1 [_mapper:protected] => )
[2] => WpProQuiz_Model_AnswerTypes Object ( [_answer:protected] => 4 [_html:protected] => 1 [_points:protected] => 1 [_correct:protected] => [_sortString:protected] => [_sortStringHtml:protected] => 1 [_mapper:protected] => )
[3] => WpProQuiz_Model_AnswerTypes Object ( [_answer:protected] => 16 [_html:protected] => 1 [_points:protected] => 1 [_correct:protected] => [_sortString:protected] => [_sortStringHtml:protected] => 1 [_mapper:protected] => ) )
我使用 get 来访问受保护的字段。我将所有值推送到数组 $answers 中,但我得到的所有值都为空。 print_r($answers) 的结果: 数组 ( [0] => [1] => [2] => [3] => )
我在这里做错了什么?
谢谢
【问题讨论】:
-
除非您在继承链中,否则您无法访问受保护的属性。
-
@vivek_23:那我如何继承访问权限?
-
使用这里显示的所有getter方法github.com/wcorrigan/portals/blob/master/plugins/sfwd-lms/…
标签: php mysql arrays wordpress protected