首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 關鍵字速解:self、$this、const、static、-> 用法總覽

     編輯:PHP 相關知識

1. self:: — 存取靜態/常數成員

用於類別內部存取 static 屬性或 const 常數:

class A {
    private static $name = "static A";
    const PI = 3.14;
    public $value = "non-static";

    public static function getName() {
        return self::$name;      // 正確
    }
    public static function getValue() {
        return self::$value;     // 錯誤:靜態方法不可存取非靜態屬性
    }
    public function getPI() {
        return self::PI;         // 正確
    }
}

口訣:static 方法只能用 self:: 存取 static / const 成員。

2. $this-> — 存取實例成員

用於物件內部存取非靜態屬性與方法:

class A {
    public $value = "instance";
    public function setValue($v) {
        $this->value = $v; // 正確
    }
}

3. const — 類別常數

  • 宣告:const PI = 3.14;(不加 $)。
  • 存取:self::PI 或 A::PI。
  • 不可在宣告時使用變數或運算式(PHP 5.6+ 可用 const ARR = [1,2,3];)。

4. static — 靜態成員 / 延遲靜態繫結

  • static $var:函數內靜態區域變數,跨呼叫保持值。
  • static::$prop / static::method():PHP 5.3+ 延遲靜態繫結(LSB),解決繼承時 self:: 綁定父類的問題。

5. -> — 物件運算子

存取物件實例的屬性與方法:$obj->prop、$obj->method()。

快速對照表

語法適用對象範例
self::$xstatic 屬性 / const 常數類別內部
$this->x實例屬性 / 方法物件內部
Class::$xstatic 屬性 / const類別外部
$obj->x實例屬性 / 方法物件外部
static::$xLSB 晚期靜態繫結繼承體系中

牢記:「靜態用 self/Class,實例用 $this/物件」,即可避開 90% 錯誤。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved