理解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中的strtr函数使用介绍(str_replace)
Oct 20 PHP
探讨PHP调用时间格式的参数详解
Jun 06 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
Mar 21 PHP
php gd等比例缩放压缩图片函数
Jun 12 PHP
Yii列表定义与使用分页方法小结(3种方法)
Jul 15 PHP
PHP数组生成XML格式数据的封装类实例
Nov 10 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
Feb 07 PHP
PHP获取路径和目录的方法总结【必看篇】
Mar 04 PHP
Laravel如何友好的修改.env配置文件详解
Jun 07 PHP
php实现微信模板消息推送
Mar 30 PHP
ThinkPHP5 的简单搭建和使用详解
Nov 15 PHP
php实现QQ小程序发送模板消息功能
Sep 18 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/01/08 PHP
PHP中调用C/C++制作的动态链接库的教程
2016/03/10 PHP
PHP访问数据库集群的方法小结
2016/03/14 PHP
详解使用php调用微信接口上传永久素材
2017/04/11 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
2017/08/18 PHP
php生成HTML文件的类方法
2019/10/11 PHP
为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能
2009/11/24 Javascript
JS使用parseInt解析数字实现求和的方法
2015/08/05 Javascript
JS中多种方式创建对象详解
2016/03/22 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
EasyUI创建对话框的两种方式
2016/08/23 Javascript
js验证手机号、密码、短信验证码代码工具类
2020/06/24 Javascript
ES7中利用Await减少回调嵌套的方法详解
2017/11/01 Javascript
Node.js使用Express.Router的方法
2017/11/14 Javascript
Angular @HostBinding()和@HostListener()用法
2018/03/05 Javascript
vue移动端弹框组件的实例
2018/09/25 Javascript
qrcode生成二维码微信长按无法识别问题的解决
2019/04/04 Javascript
[00:58]他们到底在电话里听到了什么?
2017/11/21 DOTA
python中stdout输出不缓存的设置方法
2014/05/29 Python
python新手经常遇到的17个错误分析
2014/07/30 Python
Python编程对列表中字典元素进行排序的方法详解
2017/05/26 Python
python使用turtle绘制国际象棋棋盘
2019/05/23 Python
Python pandas用法最全整理
2019/08/04 Python
简单了解django处理跨域请求最佳解决方案
2020/03/25 Python
pandas dataframe 中的explode函数用法详解
2020/05/18 Python
html5 canvas合成海报所遇问题及解决方案总结
2017/08/03 HTML / CSS
Julep官网:美容产品和指甲油
2017/02/25 全球购物
优纳科技软件测试面试题
2012/05/15 面试题
文明学生标兵事迹
2014/01/21 职场文书
2014年党员教师自我剖析材料
2014/09/30 职场文书
2014年党支部工作总结
2014/11/13 职场文书
文体活动总结
2015/02/04 职场文书
文艺部部长竞选稿
2015/11/21 职场文书
初中教务主任竞聘演讲稿(范文)
2019/08/20 职场文书
七年级作文之下雨天
2019/12/23 职场文书
Mysql - 常用函数 每天积极向上
2021/04/05 MySQL