理解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安装问题
Oct 09 PHP
MySQL修改密码方法总结
Mar 25 PHP
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
Nov 18 PHP
php 生成饼图 三维饼图
Sep 28 PHP
PHP与SQL注入攻击防范小技巧
Sep 16 PHP
PHP输入流php://input介绍
Sep 18 PHP
php去除换行符的方法小结(PHP_EOL变量的使用)
Feb 16 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
May 07 PHP
PHP中使用CURL获取页面title例子
Jan 07 PHP
php在linux下检测mysql同步状态的方法
Jan 15 PHP
laravel手动创建数组分页的实现代码
Jun 07 PHP
使用Laravel中的查询构造器实现增删改查功能
Sep 03 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中与数组相关的函数
2007/03/22 PHP
php Sql Server连接失败问题及解决办法
2009/08/07 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
2015/04/17 PHP
PHP错误处理函数
2016/04/03 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
jquery 仿QQ校友的DIV模拟窗口效果源码
2010/03/24 Javascript
Javascript学习笔记之数组的遍历和 length 属性
2014/11/23 Javascript
jQuery获得子元素个数的方法
2015/04/14 Javascript
jquery中map函数遍历数组用法实例
2015/05/18 Javascript
原生js实现百叶窗效果及原理介绍
2016/04/12 Javascript
JS实现双击内容变为可编辑状态
2017/03/03 Javascript
jQuery日程管理控件glDatePicker用法详解
2017/03/29 jQuery
vue.js声明式渲染和条件与循环基础知识
2017/07/31 Javascript
Node.js五大应用性能技巧小结(必须收藏)
2017/08/09 Javascript
JS数组交集、并集、差集的示例代码
2017/08/23 Javascript
基于layui数据表格以及传数据的方式
2018/08/19 Javascript
Vue Router history模式的配置方法及其原理
2019/05/30 Javascript
微信小程序如何使用canvas二维码保存至手机相册
2019/07/15 Javascript
vue-cli 项目打包完成后运行文件路径报错问题
2019/07/19 Javascript
vue 封装面包屑组件教程
2020/11/16 Javascript
python利用lxml读写xml格式的文件
2017/08/10 Python
python实现word 2007文档转换为pdf文件
2018/03/15 Python
PyQt5每天必学之布局管理
2018/04/19 Python
python二元表达式用法
2019/12/04 Python
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
pycharm中import呈现灰色原因的解决方法
2020/03/04 Python
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
Trip.com澳大利亚:在线旅行社
2019/12/01 全球购物
介绍一下SQL Server里面的索引视图
2016/07/31 面试题
高分子材料与工程专业推荐信
2013/12/01 职场文书
大学应届生的自我评价
2014/03/06 职场文书
2014年班主任自我评价范文
2014/04/23 职场文书
数学系毕业生求职信
2014/05/29 职场文书
专项法律服务方案
2014/06/11 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书
企业愿景口号
2015/12/25 职场文书