鍍金池/ 問答/PHP/ 關(guān)于php面向?qū)ο罄^承和靜態(tài)屬性保存公有屬性的問題

關(guān)于php面向?qū)ο罄^承和靜態(tài)屬性保存公有屬性的問題

代碼1:使用靜態(tài)屬性
class NBAplayer {

    public static $president = "david stern";
}
$tao = new NBAplayer('tao');
$jun = new NBAplayer('jun');
echo NBAplayer::$president; // david stern

代碼2:使用繼承
class Human {

    public $name;
    public $president = 'david stern';
}
class NBAplayer extends Human {
    function __construct($name){
        $this ->name = $name;
    }
}
$tao = new NBAplayer('tao');
$jun = new NBAplayer('jun');
echo $tao ->president;
echo $jun ->president;

這兩種方法都能保存公有屬性,既然可以繼承父類的共同的數(shù)據(jù),那為什么還要static靜態(tài)屬性呢?
我是剛學(xué)習(xí)面向?qū)ο?,理解不是很清楚,?qǐng)大神講講他們?cè)诠袛?shù)據(jù)這方面的區(qū)別。

回答
編輯回答
糖果果

明顯的區(qū)別:靜態(tài)屬性被多個(gè)實(shí)例共享,繼承(成員變量)是每個(gè)實(shí)例獨(dú)立的。

例如用$tao->president = "A"不會(huì)改變$jun->president

2018年5月3日 18:35
編輯回答
悶騷型

靜態(tài)變量可以在類的內(nèi)部使用,改變。但是不會(huì)影響繼承他的那個(gè)類

2018年9月19日 05:13