理解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 相关文章推荐
asp和php下textarea提交大量数据发生丢失的解决方法
Jan 20 PHP
MySQL数据源表结构图示
Jun 05 PHP
php后台程序与Javascript的两种交互方式
Oct 25 PHP
php 生成短网址原理及代码
Jan 23 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
Sep 29 PHP
Laravel 5框架学习之Blade 简介
Apr 08 PHP
ThinkPHP连接Oracle数据库
Apr 22 PHP
PHP利用正则表达式将相对路径转成绝对路径的方法示例
Feb 28 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
May 28 PHP
php实现微信支付之退款功能
May 30 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 PHP
php让json_encode不自动转义斜杠“/”的方法
Apr 27 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
解析func_num_args与func_get_args函数的使用
2013/06/24 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
2016/09/11 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
2017/09/27 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
2017/10/07 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
如何在Web页面上直接打开、编辑、创建Office文档
2007/03/12 Javascript
用JSON做数据传输格式中的一些问题总结
2011/12/21 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
等待指定时间后自动跳转或关闭当前页面的js代码
2013/07/09 Javascript
JS动态修改iframe内嵌网页地址的方法
2015/04/01 Javascript
jquery拖拽排序简单实现方法(效果增强版)
2016/02/16 Javascript
JavaScript简单下拉菜单特效
2016/09/13 Javascript
浅谈js键盘事件全面控制
2016/12/01 Javascript
微信小程序实现给循环列表添加点击样式实例
2017/04/26 Javascript
详解layui弹窗父子窗口之间传参数的方法
2018/01/16 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
2018/05/08 Javascript
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
vue权限路由实现的方法示例总结
2018/07/29 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
JavaScript手写数组的常用函数总结
2020/11/22 Javascript
python实现实时监控文件的方法
2016/08/26 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
python字典快速保存于读取的方法
2018/03/23 Python
pyttsx3实现中文文字转语音的方法
2018/12/24 Python
Python 实现一个手机号码获取妹子名字的功能
2019/09/25 Python
python的命名规则知识点总结
2019/10/04 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
HTML5 预加载让页面得以快速呈现
2013/08/13 HTML / CSS
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
应聘面试自我评价
2014/01/24 职场文书
工地安全检查制度
2014/02/04 职场文书
升职自我推荐信范文
2015/03/25 职场文书
元旦晚会主持词开场白
2015/05/28 职场文书
开学典礼致辞
2015/07/29 职场文书
《小乌鸦爱妈妈》教学反思
2016/02/19 职场文书