理解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 相关文章推荐
其他功能
Oct 09 PHP
PHP 单引号与双引号的区别
Nov 24 PHP
php中get_headers函数的作用及用法的详细介绍
Apr 27 PHP
php之curl设置超时实例
Nov 03 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
Nov 28 PHP
CI框架简单邮件发送类实例
May 18 PHP
PHP无限极分类函数的实现方法详解
Apr 15 PHP
PHP实现的随机红包算法示例
Aug 14 PHP
PHP小白必须要知道的php基础知识(超实用)
Oct 10 PHP
PHP命名空间namespace及use的简单用法分析
Aug 03 PHP
Laravel5框架自定义错误页面配置操作示例
Apr 17 PHP
php-7.3.6 编译安装过程
Feb 11 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
建站常用13种PHP开源CMS比较
2009/08/23 PHP
PHP 抓取新浪读书频道的小说并生成txt电子书的代码
2009/12/18 PHP
php+iframe实现隐藏无刷新上传文件
2012/02/10 PHP
分享最受欢迎的5款PHP框架
2014/11/27 PHP
PHP回溯法解决0-1背包问题实例分析
2015/03/23 PHP
js实现点击添加一个input节点
2014/12/05 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
2015/08/06 Javascript
Bootstrap实现响应式导航栏效果
2015/12/28 Javascript
window.onerror()的用法与实例分析
2016/01/27 Javascript
学习JavaScript图片预加载模块
2016/11/07 Javascript
基于jQuery实现Tabs选项卡自定义插件
2016/11/21 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
2017/02/21 Javascript
bootstrap的常用组件和栅格式布局详解
2017/05/02 Javascript
Vue 3.0 前瞻Vue Function API新特性体验
2019/08/12 Javascript
微信小程序实现购物车代码实例详解
2019/08/29 Javascript
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
2016/06/07 Python
pandas中Timestamp类用法详解
2017/12/11 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
Python Matplotlib实现三维数据的散点图绘制
2019/03/19 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
2019/08/16 Python
Django数据库操作之save与update的使用
2020/04/01 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
利用python绘制中国地图(含省界、河流等)
2020/09/21 Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
2021/01/28 Python
JENNIFER BEHR官网:各种耳环和发饰
2020/06/07 全球购物
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
银行实习的自我鉴定
2013/12/10 职场文书
音乐专业自荐信
2014/02/07 职场文书
《七颗钻石》教学反思
2014/02/28 职场文书
安全生产承诺书范文
2014/05/22 职场文书
2014年有孩子的离婚协议书范本
2014/10/08 职场文书
大学生见习报告总结
2014/11/04 职场文书
2015年中秋节活动总结
2015/03/23 职场文书
一个成功的互联网创业项目,必须满足这些要求
2019/08/23 职场文书