簡體   English   中英

PHP-擴展類修改保護父級

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM