网站地图    收藏   

主页 > php专栏 > php面向对象 >

PHP 类属性 类静态变量的访问 - php面向对象

来源:自学PHP网    时间:2014-11-30 12:29 作者: 阅读:

[导读] php的类属性其实有两种,一种是类常量,一种是类静态变量。两种容易引起混淆。如同静态类方法和类实例方法一样,静态类属性和实例属性不能...

PHP 类属性 类静态变量的访问

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. ?> 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论