理解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 相关文章推荐
php压缩多个CSS为一个css的代码并缓存
Apr 21 PHP
PHP的一个基础知识 表单提交
Jul 04 PHP
PHP连接SQLSERVER 注意事项(附dll文件下载)
Jun 28 PHP
PHP中如何调用webservice的实例参考
Apr 25 PHP
php实现图片缩放功能类
Dec 18 PHP
php制作中间带自己定义图片二维码的方法
Jan 27 PHP
php实现cookie加密的方法
Mar 10 PHP
深入探究PHP的多进程编程方法
Aug 18 PHP
PHP魔术方法使用方法汇总
Feb 14 PHP
PHP实现163邮箱自动发送邮件
Mar 29 PHP
PHP实现的文件操作类及文件下载功能示例
Dec 24 PHP
PHP实现倒计时功能
Nov 16 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
附件名前加网站名
2008/03/23 PHP
PHP伪静态页面函数附使用方法
2008/06/20 PHP
如何取得中文字符串中出现次数最多的子串
2013/08/08 PHP
8个必备的PHP功能实例代码
2013/10/27 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
2014/06/22 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
2017/03/13 PHP
php格式文件打开的四种方法
2018/02/24 PHP
prototype与jquery下Ajax实现的差别
2009/09/13 Javascript
JavaScript 加号(+)运算符号
2009/12/06 Javascript
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
理解Javascript_01_理解内存分配原理分析
2010/10/11 Javascript
jquery each()源代码
2011/02/14 Javascript
Javascript代码在页面加载时的执行顺序介绍
2013/05/03 Javascript
Js注册协议倒计时的小例子
2013/06/24 Javascript
javascript函数声明和函数表达式区别分析
2014/12/02 Javascript
JS实现定时自动关闭DIV层提示框的方法
2015/05/11 Javascript
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
利用Angular.js编写公共提示模块的方法教程
2017/05/28 Javascript
JS实现进度条动态加载特效
2020/03/25 Javascript
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
Python中处理字符串的相关的len()方法的使用简介
2015/05/19 Python
python实现简单socket通信的方法
2016/04/19 Python
对Python进行数据分析_关于Package的安装问题
2017/05/22 Python
python 中的int()函数怎么用
2017/10/17 Python
python print 按逗号或空格分隔的方法
2018/05/02 Python
python3安装speech语音模块的方法
2018/12/24 Python
Python tkinter实现简单加法计算器代码实例
2020/05/13 Python
基于Python组装jmx并调用JMeter实现压力测试
2020/11/03 Python
CSS3中的注音对齐属性ruby-align用法指南
2016/07/01 HTML / CSS
Myprotein芬兰官网:欧洲第一运动营养品牌
2019/05/05 全球购物
教师考核材料
2014/05/21 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
行政司机岗位职责
2015/04/10 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
Python实现DBSCAN聚类算法并样例测试
2021/06/22 Python
【海涛解说】暗牧也疯狂,牛蛙成配角
2022/04/01 DOTA