第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何防止覆蓋PHP類中的父屬性?

如何防止覆蓋PHP類中的父屬性?

PHP
森林海 2021-04-30 10:36:46
我是PHP OOP的初學(xué)者。我想防止在子類啟動(dòng)時(shí)覆蓋父類屬性。例如,我有 Parent和Child類,如下所示:class Parent {    protected $array = [];    public function __construct() {    }    public function add($value) {        $this->array[] = $value;    }    public function get() {        return $this->array;    }}class Child extends Parent {    public function __construct() {    }}首先,我啟動(dòng)了Parent課程,向該array屬性添加了3個(gè)項(xiàng)目:$parent = new Parent;$parent->add('a');$parent->add('b');$parent->add('c');然后,我啟動(dòng)了Child類,并向該array屬性添加了1個(gè)項(xiàng)目:$child = new Child;$child->add('d');實(shí)際結(jié)果:var_dump($parent->show()); // outputs array('a', 'b', 'c')var_dump($child->show()); // outputs array('d')預(yù)期結(jié)果:var_dump($parent->show()); // outputs array('a', 'b', 'c', 'd')var_dump($child->show()); // outputs array('a', 'b', 'c', 'd')我怎樣才能做到這一點(diǎn)?我試過了,但是沒有用:class Child extends Parent {    public function __construct() {        $this->array = parent::get();    }}
查看完整描述

3 回答

?
開滿天機(jī)

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊

我是用靜態(tài)變量來(lái)做的。我的課程現(xiàn)在是這樣的:


class Parent {

    protected static $array = [];


    public function __construct() {

    }


    public function add($value) {

        self::$array[] = $value;

    }


    public function get() {

        return self::$array;

    }

}


class Child extends Parent {

    public function __construct() {

    }

}

當(dāng)我測(cè)試它時(shí),我得到了我所期望的:


$parent = new Parent;

$parent->add('a');

$parent->add('b');

$parent->add('c');


$child = new Child;

$child->add('d');


var_dump($parent->show()); // outputs array('a', 'b', 'c', 'd')

var_dump($child->show()); // outputs array('a', 'b', 'c', 'd')


查看完整回答
反對(duì) 回復(fù) 2021-05-14
?
侃侃無(wú)極

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊

似乎擴(kuò)展課程不是您想要在這里做的。

您應(yīng)該閱讀有關(guān)類和對(duì)象之間的區(qū)別。也許您應(yīng)該先做一個(gè)通用的OOP教程。

如果要在類的實(shí)例之間共享靜態(tài)變量,則需要使用靜態(tài)變量。


查看完整回答
反對(duì) 回復(fù) 2021-05-14
?
慕沐林林

TA貢獻(xiàn)2016條經(jīng)驗(yàn) 獲得超9個(gè)贊

您應(yīng)該這樣做。

$child = clone $parent; 
$child->add('d');


查看完整回答
反對(duì) 回復(fù) 2021-05-14
  • 3 回答
  • 0 關(guān)注
  • 175 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)