當前位置:首頁 > PHP教程 > php面向對象 > 列表

PHP 類屬性 類靜態變量的訪問

發布:smiling 來源: PHP粉絲網  添加日期:2013-11-14 19:09:38 瀏覽: 評論:0 

php的類屬性其實有兩種,一種是類常量,一種是類靜態變量。兩種容易引起混淆。

如同靜態類方法和類實例方法一樣,靜態類屬性和實例屬性不能重定義(同名),但靜態屬性可以和類常量同名。

  1. <?php  
  2. class test  
  3. {  
  4. const constvar='hello world';  
  5. static $staticvar='hello world';  
  6. function getStaticvar(){  
  7. return self::$staticvar;  
  8. }  
  9. }  
  10. $obj=new test();  
  11. echo test::constvar //輸出'hello world'  
  12. echo test::staticvar //出錯,staticvar 前必須加$才能訪問,這是容易和類常量(per-class常量)容易混淆的地方之一  
  13. echo test::$staticvar //輸出'hello world'  
  14. $str='test';  
  15. echo $str::$staticvar //出錯,類名在這不能用變量動態化  
  16. echo $str::constvar //出錯原因同上  
  17. //在類名稱存在一個變量中處于不確定(動態)狀態時,只能以以下方式訪問類變量  
  18. $obj2=new $str();  
  19. echo $obj2->getStaticvar();  
  20. ?>  
  21. <?php  
  22. class test  
  23. {  
  24. const constvar='hello world';  
  25. static $staticvar='hello world';  
  26. function getStaticvar(){  
  27. return self::$staticvar;  
  28. }  
  29. }  
  30. $obj=new test();  
  31. echo test::constvar //輸出'hello world'  
  32. echo test::staticvar //出錯,staticvar 前必須加$才能訪問,這是容易和類常量(per-class常量)容易混淆的地方之一  
  33. echo test::$staticvar //輸出'hello world'  
  34. $str='test';  
  35. echo $str::$staticvar //出錯,類名在這不能用變量動態化  
  36. echo $str::constvar //出錯原因同上  
  37. //在類名稱存在一個變量中處于不確定(動態)狀態時,只能以以下方式訪問類變量  
  38. $obj2=new $str();  
  39. echo $obj2->getStaticvar();  
  40. ?> 

Tags: 屬性 靜態 變量

分享到:

天气网首页彩吧