Расширяет класс Modify защиты родительского

Я создал расширенный класс для того, чтобы модифицировать защищенную переменную для определенной цели. Однако я не понимаю, как я могу изменить защищенный var родительского класса из дочернего класса и использовать его везде в родительских функциях.

Например:

class parent {

protected $data;

public function __construct() {
add_action('wp_ajax_output', array(&$this, 'output'));
}

public function output() {
get_data();
show();
}

public function get_data() {
$this->$data = 'data_1';
}


public function show() {
// here I'm using the protected var (I would like to use it from child)
echo $this->data;
}

}
new parent();

class child extends parent {


public function __construct() {
parent::__construct();
add_action('wp_ajax_child_output', array(&$this, 'child_output'));
}

public function child_output() {
$this->data = 'data_2';
// I would like to use  $this->data in parent::show();
parent::show();
}

}
new child();

Как я могу переопределить все защищенное использование var в parent?

1

Решение

Я только что проверил ваш код, и он выдает правильный вывод. Проблема лежит где-то еще.
когда вы используете child_output (), вы используете его правильно. Все защищенные свойства доступны напрямую через дочерний класс, а также через все защищенные открытые методы.

2

Другие решения

если вы создаете объект из родительского класса, то вы используете родительский класс как есть. Если вы создаете объект из дочернего класса, он наследует все свойства и методы от родительского класса, таким образом, дочерний класс имеет свойство $ data и три дополнительных метода.

-1

По вопросам рекламы [email protected]