php专区

 首页 > php专区 > PHP高级 > 面向对象MVC > PHP 类属性 类静态变量的访问 - php面向对象

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

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

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

php的类属性其实有两种,一种是类常量,一种是类静态变量。两种容易引起混淆。

如同静态类方法和类实例方法一样,静态类属性和实例属性不能重定义(同名),但静态属性可以和类常量同名。

  1. class test  
  2. {  
  3. const constvar='hello world';  
  4. static $staticvar='hello world';  
  5. function getStaticvar(){  
  6. return self::$staticvar;  
  7. }  
  8. }  
  9. $obj=new test();  
  10. echo test::constvar //输出'hello world'  
  11. echo test::staticvar //出错,staticvar 前必须加$才能访问,这是容易和类常量(per-class常量)容易混淆的地方之一  
  12. echo test::$staticvar //输出'hello world'  
  13. $str='test';  
  14. echo $str::$staticvar //出错,类名在这不能用变量动态化  
  15. echo $str::constvar //出错原因同上  
  16. //在类名称存在一个变量中处于不确定(动态)状态时,只能以以下方式访问类变量  
  17. $obj2=new $str();  
  18. echo $obj2->getStaticvar();  
  19. ?>  
  20. class test  
  21. {  
  22. const constvar='hello world';  
  23. static $staticvar='hello world';  
  24. function getStaticvar(){  
  25. return self::$staticvar;  
  26. }  
  27. }  
  28. $obj=new test();  
  29. echo test::constvar //输出'hello world'  
  30. echo test::staticvar //出错,staticvar 前必须加$才能访问,这是容易和类常量(per-class常量)容易混淆的地方之一  
  31. echo test::$staticvar //输出'hello world'  
  32. $str='test';  
  33. echo $str::$staticvar //出错,类名在这不能用变量动态化  
  34. echo $str::constvar //出错原因同上  
  35. //在类名称存在一个变量中处于不确定(动态)状态时,只能以以下方式访问类变量  
  36. $obj2=new $str();  
  37. echo $obj2->getStaticvar();  
  38. ?> 
分享到:
PHP面向对象之private权限控制 - php面向...
PHP面向对象之private权限控制     
PHP面向对象开发——封装关键字 - php面...
PHP面向对象开发——封装关键字 封装关键字:public、protected、private 示例代码: class MyPc{       public $name;       protected $price;       private function void(){           $this->name;       }   }  $...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……