7.2 類的屬性

變量

類的變量叫做屬性,也可以叫成員、字段、特征等,PHP推薦稱之為屬性。

屬性可以通過privateprotectedpublicstatic來設置它的可訪問性,類似Java的作用域。

訪問一個實例對象的非靜態屬性的方式是:$object->屬性名,其中屬性名 不能包含 $ 美元符號

在當前類中訪問普通屬性的方式是:$this->屬性名

訪問一個類的靜態屬性的方式是:ClassName::$屬性名,其中屬性名 包含 $ 美元符號

在當前類中訪問靜態屬性的方式是:static::$屬性名

class Example{
    
    // 只聲明不賦值

    // 私有屬性
    private $a;
    // 保護屬性
    protected $b;
    // 公開屬性
    public $c;

    // 聲明的同時也賦值
    private $x = 1;
    protected $y = 2;
    public $z = 3;

    // 靜態屬性
    static $foobar = 4;

    // 構造方法,演示下在類的方法中如何訪問自身的屬性
    public function __construct(){
        // 私有屬性
        echo $this->x;
        // 保護屬性
        echo $this->y;
        // 公開屬性
        echo $this->z;
        // 靜態屬性
        echo static::$foobar;
    }

}

// 實例化
$exam = new Example();

// 私有屬性無法訪問
$exam->x;
// 保護屬性無法訪問
$exam->y;

// 公開屬性可以訪問
$exam->z;

// 訪問靜態屬性
Example::$foobar;

常量

可以把類中始終不變的值定義為常量,常量在定義和使用的時候不能用 $ 美元符號。

而且他的值只能是一個定死了的值,不能是變量或函數這種看起來結果不固定的值。

常量可以通過privateprotectedpublic來設置它的可訪問性,但不能設置成 static 靜態的。

// 定義類
class Example{

    // 定義常量
    private const ONE = 111;
    protected const TWO = 222;
    public const THREE = 333;
    const FOUR = 444 * 1;

    // 在構造函數中演示如何在方法中訪問當前類的常量
    public function __construct(){

        // 一共三種方法
        echo $this::ONE;
        echo self::TWO;
        echo static::THREE;

        // 在類中訪問常量看起來這種方式最為簡介
        echo self::FOUR;

    }
}

// 實例化
$exam = new Example();

// 通過實例訪問

// 這兩個沒有權限訪問
$exam::ONE;
$exam::TWO;

// 這兩個有權限
$exam::THREE;
$exam::FOUR;


// 通過類訪問
echo Example::THREE;
echo Example::FOUR;
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容