古詩詞大全網 - 成語經典 - PHP中this,self和static的區別

PHP中this,self和static的區別

PHP支持類和面向對象結構,PHP的類的靜態函數和變量不與任何特定類的實例相關聯(換句話說,壹個對象)。

相反,靜態函數和變量與類定義本身相關聯。換言之,壹個類的所有實例都***享相同的靜態變量。在壹個類的方法(函數)的上下文中,靜態變量和函數被訪問使用self::,在壹個類的對象(實例)的上下文中使用其他方法和變量時用this。

靜態函數只能使用靜態變量,靜態函數和變量的引用是通過 self::函數名() 和 self::變量名。上述實例中,靜態變量的引用是由類名(exampleClass::$foo),或者?self::?(self::$foo),當在這個類的靜態方法[稱為 靜態函數()]裏使用時。類的正則函數和變量需要壹個對象上下文來引用,他們不能脫離對象上下文而存在。對象上下文由?$this?提供。在上述函數中,$bar 是壹個正則變量,所以它被 $obj->bar(上下文使用變量obj) 來引用,或者使用 $this->bar(再次在壹個對象的方法裏在壹個對象上下文中) 來引用。

self 不使用前面的 $,因為 self 不意味著是壹個變量而是類結構本身。而 $this 引用壹個特定的變量,所以有前面的 $ 。