PHP 父類方法如何訪問子類屬性


設計知識點

類與對象->后期靜態綁定

出現的問題

A 類為父類
里面有一個方法為調用當前類的 $name 屬性
當 B 類繼承了 A類時
但是輸出仍然是 A (父類) 的 屬性?

<?php
class A
{
    private static $name = "A類";
    
    public static function test()
    {
        echo self::$name;
    }
}

class B extends A
{
     private static $name = "B類";
}

B::test();

解決辦法

官方講解
static代表的是調用的那個類。而self代表的是方法所在的類

<?php
class A
{
    private static $name = "A類";
    
    public static function test()
    {
        echo static::$name;
    }
}

class B extends A
{
     protected static $name = "B類";
}

B::test();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM