国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

開啟PHP Static 關鍵字之旅模式

2024-05-04 23:40:22
字體:
來源:轉載
供稿:網友

靜態成員是一種類變量,可以把它看成時屬于整個類而不是屬于類的某個實例。與一般的實例變量不同的是,靜態成員只保留一個變量值,而這個變量值對所有的實例都是有效的,也就是說,所有的實例共享這個成員,跟著小編一起去探討php static關鍵字吧

聲明類成員或方法為static,就可以不實例化類而直接訪問。不能通過一個對象來訪問其中的靜態成員(靜態方法除外)。

為了兼容PHP4,如果沒有指定“可見性”,屬性和方法默認為public。

由于靜態方法不需要通過對象即可調用,所以偽變量$this在靜態方法中不可用。

靜態屬性不可以由對象通過->操作符來訪問。

用::方式調用一個非靜態方法會導致一個E_STRICT級別的錯誤。

就像其它所有的PHP靜態變量一樣,靜態屬性只能被初始化為一個字符值或一個常量,不能使用表達式。 所以你可以把靜態屬性初始化為整型或數組,但不能指向另一個變量或函數返回值,也不能指向一個對象。

PHP5.3.0之后,我們可以用一個變量來動態調用類。但該變量的值不能為關鍵字self, parent 或static。

Example #1 靜態成員代碼示例

 

 
  1. <?php 
  2. class Foo 
  3. public static $my_static = 'foo'
  4. public function staticValue() { 
  5. return self::$my_static; 
  6. class Bar extends Foo 
  7. public function fooStatic() { 
  8. return parent::$my_static; 
  9. print Foo::$my_static . " "
  10. $foo = new Foo(); 
  11. print $foo->staticValue() . " "
  12. print $foo->my_static . " "// Undefined "Property" my_static  
  13. print $foo::$my_static . " "
  14. $classname = 'Foo'
  15. print $classname::$my_static . " "// PHP 5.3.0之后可以動態調用 
  16. print Bar::$my_static . " "
  17. $bar = new Bar(); 
  18. print $bar->fooStatic() . " "
  19. ?> 

Example #2 靜態方法代碼示例

 

 
  1. <?php 
  2. class Foo { 
  3. public static function aStaticMethod() { 
  4. // ... 
  5. Foo::aStaticMethod(); 
  6. $classname = 'Foo'
  7. $classname::aStaticMethod(); // As of PHP 5.3.0 
  8. ?> 

關于static 中靜態變量和靜態方法的總結

靜態變量

靜態變量是只存在于函數作用域的變量,不過,在函數執行完成后,這種變量的值不會丟失,也就是說,在下一次調用這個函數時,變量仍然會記得原來的值。要將某個變量定義為靜態的,只需要在變量前加上 static 關鍵字即可。

在類中,static關鍵字有兩種主要用法,一是用來定義靜態成員,一是用來定義靜態方法。在類的內部,可以使用作用域限定符 (::) 來訪問不同層次作用域的變量。

靜態方法

靜態方法和非靜態方法之間有一個重要的區別:在調用靜態方法時,不再需要擁有類的實例。

靜態方法和非靜態方法使用原則:一是如果某個方法中不包含$this變量,就應該時靜態方法;如果不需要類的實例,可能還應該使用靜態類,這樣可以免去實例化類的工作。另,在靜態方法中時不能使用$this變量的,因為靜態方法不屬于某個特定的實例。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 延寿县| 崇左市| 巴林左旗| 武夷山市| 沅陵县| 太仓市| 平度市| 平阴县| 彩票| 宁安市| 安宁市| 青河县| 土默特右旗| 贺州市| 边坝县| 蓬安县| 合肥市| 视频| 永德县| 重庆市| 贵州省| 通化县| 凤冈县| 水富县| 上栗县| 荥经县| 西吉县| 沈阳市| 南充市| 德兴市| 张家界市| 右玉县| 运城市| 孟州市| 潜江市| 亳州市| 峨眉山市| 沭阳县| 郎溪县| 台州市| 西华县|