理解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 相关文章推荐
打造计数器DIY三步曲(上)
Oct 09 PHP
php关于array_multisort多维数组排序的使用说明
Jan 04 PHP
PHP程序开发范例学习之表单 获取文本框的值
Aug 08 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
Aug 31 PHP
php ImageMagick windows下安装教程
Jan 26 PHP
php数组去除空值函数分享
Feb 02 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
Feb 14 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
Mar 07 PHP
PHP的Yii框架中过滤器相关的使用总结
Mar 29 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
php实现等比例压缩图片
Jul 26 PHP
PHP常用函数之获取汉字首字母功能示例
Oct 21 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 线程安全与非线程安全版本的区别深入解析
2013/08/06 PHP
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
2019/05/06 PHP
javascript之更有效率的字符串替换
2008/08/02 Javascript
理解Javascript_13_执行模型详解
2010/10/20 Javascript
JavaScript.The.Good.Parts阅读笔记(二)作用域&amp;闭包&amp;减缓全局空间污染
2010/11/16 Javascript
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
常见表单重复提交问题整理及解决方法
2013/11/13 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
js实现的四级左侧网站分类菜单实例
2015/05/06 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
2016/01/04 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
2016/10/01 Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
2017/01/23 Javascript
Angularjs Promise实例详解
2018/03/15 Javascript
Vue+Express实现登录注销功能的实例代码
2019/05/05 Javascript
js get和post请求实现代码解析
2020/02/06 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
2020/07/22 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
vue npm install 安装某个指定的版本操作
2020/08/11 Javascript
python获得图片base64编码示例
2014/01/16 Python
Python的Flask站点中集成xhEditor文本编辑器的教程
2016/06/13 Python
python编码总结(编码类型、格式、转码)
2016/07/01 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
2018/07/31 Python
使用matplotlib中scatter方法画散点图
2019/03/19 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
2019/06/28 Python
介绍一款python类型检查工具pyright(推荐)
2019/07/03 Python
TensorFlow使用Graph的基本操作的实现
2020/04/22 Python
python super()函数的基本使用
2020/09/10 Python
MAC彩妆英国官网:M·A·C UK
2018/05/30 全球购物
伦敦香水公司:The London Perfume Company
2019/11/13 全球购物
业务经理的岗位职责
2013/11/16 职场文书
花店创业计划书范文
2014/02/07 职场文书
应届毕业生如何写求职信
2014/02/16 职场文书
竞选学生会演讲稿
2014/04/25 职场文书
12.4法制宣传日活动总结
2014/08/26 职场文书
创业计划书之川味火锅店
2019/09/02 职场文书
微软团队与 NASA 科学家和惠普企业(HPE)的工程师合作
2022/04/21 数码科技