知识屋:更实用的电脑技术知识网站
所在位置:首页 > 编程技术 > PHP编程

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

发布时间:2014-09-05 10:28:10作者:知识屋

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

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

<?php class test {   const constvar='hello world';   static $staticvar='hello world';   function getStaticvar(){      return self::$staticvar;   } }  $obj=new test(); echo test::constvar //输出'hello world' echo test::staticvar //出错,staticvar 前必须加$才能访问,这是容易和类常量(per-class常量)容易混淆的地方之一 echo test::$staticvar //输出'hello world' $str='test'; echo $str::$staticvar //出错,类名在这不能用变量动态化 echo $str::constvar //出错原因同上  //在类名称存在一个变量中处于不确定(动态)状态时,只能以以下方式访问类变量 $obj2=new $str(); echo $obj2->getStaticvar(); ?> <?phpclass test{  const constvar='hello world';  static $staticvar='hello world';  function getStaticvar(){     return self::$staticvar;  }}$obj=new test();echo test::constvar //输出'hello world'echo test::staticvar //出错,staticvar 前必须加$才能访问,这是容易和类常量(per-class常量)容易混淆的地方之一echo test::$staticvar //输出'hello world'$str='test';echo $str::$staticvar //出错,类名在这不能用变量动态化echo $str::constvar //出错原因同上//在类名称存在一个变量中处于不确定(动态)状态时,只能以以下方式访问类变量$obj2=new $str();echo $obj2->getStaticvar();?> 

 

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜