[英]PHP - Extends class modify protect parent
我創建了擴展類,以便出於特定目的修改受保護的var。 但是我不明白如何從子類修改受父類保護的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使用?
我剛剛測試了您的代碼,它給出了正確的輸出。 問題出在其他地方。 當您使用child_output()時,您可以正確使用它。 可通過子類以及所有受保護的公共方法直接訪問所有受保護的屬性。
如果從父類創建對象,則按原樣使用父類。 如果從子類創建對象,則該對象將從父類繼承所有屬性和方法,因此子類具有$ data屬性和三個其他方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.