理解PHP5中static和const关键字的区别


Posted in PHP onMarch 19, 2007

PHP5中加入了很多面向对象的思想,PHP5的面向对象比较接近Java的面向对象思想。我们这里对PHP5中的static和const关键字作用进行一下描述,希望对学习PHP5的朋友有帮助。
(1) static
static关键字在类中是,描述一个成员是静态的,static能够限制外部的访问,因为static后的成员是属于类的,是不属于任何对象实例,其他类是无法访问的,只对类的实例共享,能一定程序对该成员尽心保护。类的静态变量,非常类似全局变量,能够被所有类的实例共享,类的静态方法也是一样的,类似于全局函数。类的静态方法能访问类的静态的属性。另外说明的是,static的成员,必须使用self来访问,使用this会出错。
(关于this和self的异同,请参考: http://blog.csdn.net/heiyeshuwu/archive/2004/11/03/165828.aspx )
(2)const
const是一个定义常量的关键字,类似于C中的#define,能够定义一个常量,如果在程序中改变了它的值,那么会出现错误。
举例说明上面的代码:(注:以下代码来自phpe.net)

<?php  
class Counter  
{  
 private static $count = 0;//定义一个静态属性  
 const VERSION = 2.0;//定义一个常量  
 //构造函数  
 function __construct()  
 {  
  self::$count++;  
 }  
 //析构函数  
 function __destruct()  
 {  
  self::$count--;  
 }  
 //定义一个静态的方法  
 static function getCount()  
 {  
  return self::$count;  
 }  
}  
//创建一个实例  
$c = new Counter();  
//执行打印  
print( Counter::getCount(). "<br>n" ); //使用直接输入类名来访问静态方法Counter::getCount  
//打印类的版本  
print( "Version useed: " .Counter::VERSION. "<br>n" );  
?>  

恩,基本到这里,心里知道的那点东西就讲清楚了,不过我觉得自己对static还有点不理解,请高手指点!
PHP 相关文章推荐
PH P5.2至5.5、5.6的新增功能详解
Jul 14 PHP
thinkphp浏览历史功能实现方法
Oct 29 PHP
php画图实例
Nov 05 PHP
PHP面向对象精要总结
Nov 07 PHP
PHP查询快递信息的方法
Mar 07 PHP
php实现处理输入转义字符的代码
Nov 08 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
Dec 19 PHP
深入解析WordPress中加载模板的get_template_part函数
Jan 11 PHP
示例详解Laravel重置密码代码重构
Aug 10 PHP
Yii框架实现多数据库配置和操作的方法
May 25 PHP
PHP中TP5 上传文件的实例详解
Jul 31 PHP
使用YII2框架实现微信公众号中表单提交功能
Sep 04 PHP
php中目录,文件操作详谈
Mar 19 #PHP
PHP配置文件中最常用四个ini函数
Mar 19 #PHP
推荐一篇入门级的Class文章
Mar 19 #PHP
隐藏你的.php文件的实现方法
Mar 19 #PHP
生成静态页面的php函数,php爱好者站推荐
Mar 19 #PHP
php分页示例代码
Mar 19 #PHP
简单介绍下 PHP5 中引入的 MYSQLI的用途
Mar 19 #PHP
You might like
php discuz 主题表和回帖表的设计
2009/03/13 PHP
PHP+MySQL 手工注入语句大全 推荐
2009/10/30 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
laravel框架如何设置公共头和公共尾
2019/10/22 PHP
用js得到网页中所有的div的id
2020/10/19 Javascript
javascript prototype,executing,context,closure
2008/12/24 Javascript
Jquery 最近浏览过的商品的功能实现代码
2010/05/14 Javascript
用Juery网页选项卡实现代码
2011/06/13 Javascript
javascript中怎么做对象的类型判断
2013/11/11 Javascript
Javascript类型系统之undefined和null浅析
2016/07/13 Javascript
js实现点击每个li节点,都弹出其文本值及修改
2016/12/15 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
基于jQuery实现文字打印动态效果
2017/04/21 jQuery
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
2017/11/22 Javascript
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
Node.js 如何利用异步提升任务处理速度
2019/01/07 Javascript
微信小程序导入Vant报错VM292:1 thirdScriptError的解决方法
2019/08/01 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
js实现简单抽奖功能
2020/11/24 Javascript
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
python re模块findall()函数实例解析
2018/01/19 Python
Python Learning 列表的更多操作及示例代码
2018/08/22 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
2019/08/26 Python
在Tensorflow中查看权重的实现
2020/01/24 Python
HTML5添加禁止缩放功能
2017/11/03 HTML / CSS
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
智能家居、吸尘器、滑板车、电动自行车网上购物:Geekmaxi
2021/01/18 全球购物
《乡下孩子》教学反思
2014/04/17 职场文书
音乐学专业求职信
2014/07/22 职场文书
学生党员检讨书范文
2014/12/27 职场文书
幼儿园工作总结2015
2015/04/01 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书
仰望星空观后感
2015/06/10 职场文书
Go语言grpc和protobuf
2022/04/13 Golang