理解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 相关文章推荐
Linux fgetcsv取得的数组元素为空字符串的解决方法
Nov 25 PHP
基于session_unset与session_destroy的区别详解
Jun 03 PHP
linux系统下php安装mbstring扩展的二种方法
Jan 20 PHP
destoon利用Rewrite规则设置网站安全
Jun 21 PHP
WordPress中调试缩略图的相关PHP函数使用解析
Jan 07 PHP
golang与php实现计算两个经纬度之间距离的方法
Jul 22 PHP
利用php做服务器和web前端的界面进行交互
Oct 31 PHP
MAC下通过改apache配置文件切换php多版本的方法
Apr 26 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
May 05 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
php tpl模板引擎定义与使用示例
Aug 09 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 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 魔术方法使用说明
2009/10/20 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
ThinkPHP实现批量删除数据的代码实例
2014/07/02 PHP
php使用array_search函数实现数组查找的方法
2015/06/12 PHP
PHP实现无限级分类(不使用递归)
2015/10/22 PHP
学习php设计模式 php实现抽象工厂模式
2015/12/07 PHP
大家须知简单的php性能优化注意点
2016/01/04 PHP
JavaScript库 开发规则
2009/01/31 Javascript
IE6下出现JavaScript未结束的字符串常量错误的解决方法
2010/11/21 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
2013/11/28 Javascript
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
实例分析浏览器中“JavaScript解析器”的工作原理
2016/12/12 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
vue父组件点击触发子组件事件的实例讲解
2018/02/08 Javascript
微信用户访问小程序的登录过程详解
2019/09/20 Javascript
如何在vue中使用kindeditor富文本编辑器
2020/12/19 Vue.js
使用python实现strcmp函数功能示例
2014/03/25 Python
Python开发网站目录扫描器的实现
2019/02/21 Python
python networkx 根据图的权重画图实现
2019/07/10 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
2019/08/13 Python
以SQLite和PySqlite为例来学习Python DB API
2020/02/05 Python
CSS3对背景图片的裁剪及尺寸和位置的设定方法
2016/03/07 HTML / CSS
德国家具购物网站:Möbel Höffner
2019/08/26 全球购物
小学教师学期末自我评价
2013/09/25 职场文书
大学生军训自我评价分享
2013/11/09 职场文书
市政施工员自我鉴定
2014/01/15 职场文书
考试没考好检讨书
2014/01/31 职场文书
优秀的2014年两会精神解读
2014/03/17 职场文书
银行竞聘演讲稿范文
2014/04/23 职场文书
反四风个人对照检查材料
2014/09/26 职场文书
一般基层干部群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
2014收银员工作总结范文
2014/12/16 职场文书
2014年医院党建工作总结
2014/12/20 职场文书
如何书写邀请函?
2019/06/24 职场文书