PHP类的静态(static)方法和静态(static)变量使用介绍


Posted in PHP onFebruary 19, 2012

在php中,访问类的方法/变量有两种方法:
1. 创建对象$object = new Class(),然后使用”->”调用:$object->attribute/function,前提是该变量/方法可访问。
2. 直接调用类方法/变量:class::attribute/function,无论是静态/非静态都可以。但是有前提条件:
A. 如果是变量,需要该变量可访问。
B. 如果是方法,除了该方法可访问外,还需要满足:
b1) 如果是静态方法,没有特殊条件;
b2) 如果是非静态方法,需要改方法中没有使用$this,即没有调用非静态的变量/方法,当然,调用静态的变量/方法没有问题。

然后我们再看一下使用$object->… 和使用class::… 都有什么区别:
1. 使用$object->… ,需要执行构造函数创建对象;
2. 使用class::… 调用静态方法/变量,不需要执行构造函数创建对象;
3. 使用class::… 调用非静态方法/变量,也不需要执行构造函数创建对象。

然后奇怪的地方就出来了,既然2和3都一样,那静态方法/变量存在还有什么意义呢?
差异还是显然存在的,如下:
1. 静态变量
静态成员只保留一个变量值,而这个变量值对所有的实例都是有效,也就是说,所有的实例共享这个成员。
2. 静态方法
静态方法可以直接使用class::… 来调用,而非静态方法需要满足一定限制条件才能使用class::.. 的方法调用,如之前所述

PHP 相关文章推荐
php mysql数据库操作分页类
Jun 04 PHP
php empty,isset,is_null判断比较(差异与异同)
Oct 19 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
Sep 30 PHP
php jquery 多文件上传简单实例
Dec 23 PHP
PHP判断指定时间段的2个方法
Mar 14 PHP
PHP加密解密字符串汇总
Apr 26 PHP
PHP浮点比较大小的方法
Feb 14 PHP
phpmailer绑定邮箱的实现方法
Dec 01 PHP
PHP读取Excel类文件
May 15 PHP
PHP实现负载均衡的加权轮询方法分析
Aug 22 PHP
PHP PDOStatement::execute讲解
Jan 31 PHP
Laravel5.4简单实现app接口Api Token认证方法
Aug 29 PHP
php 删除一个数组中的某个值.兼容多维数组!
Feb 18 #PHP
php 获取百度的热词数据的代码
Feb 18 #PHP
php 网上商城促销设计实例代码
Feb 17 #PHP
php中通过curl模拟登陆discuz论坛的实现代码
Feb 16 #PHP
初品cakephp 入门基础
Feb 16 #PHP
php线性表顺序存储实现代码(增删查改)
Feb 16 #PHP
用PHP实现Ftp用户的在线管理
Feb 16 #PHP
You might like
PHP常用代码大全(新手入门必备)
2010/06/29 PHP
php实现cookie加密的方法
2015/03/10 PHP
利用Laravel事件系统如何实现登录日志的记录详解
2017/05/20 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
2017/07/18 PHP
利用javascript中的call实现继承
2007/01/22 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
jQuery团购倒计时特效实现方法
2015/05/07 Javascript
jquery实现表单输入时提示文字滑动向上效果
2015/08/10 Javascript
JavaScript知识点总结(十)之this关键字
2016/05/31 Javascript
浅谈Vue的基本应用
2016/12/27 Javascript
原生js实现返回顶部缓冲效果
2017/01/18 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
Vue.js 中 axios 跨域访问错误问题及解决方法
2018/11/21 Javascript
详解用async/await来处理异步
2019/08/28 Javascript
JavaScript检测浏览器是否支持CSS变量代码实例
2020/04/03 Javascript
Python ljust rjust center输出
2008/09/06 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
python字符串替换第一个字符串的方法
2019/06/26 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
2019/06/27 Python
python基于pdfminer库提取pdf文字代码实例
2019/08/15 Python
NumPy统计函数的实现方法
2020/01/21 Python
django rest framework serializers序列化实例
2020/05/13 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
2020/08/07 Python
Yankee Candle官网:美国最畅销蜡烛品牌之一
2020/01/05 全球购物
本科生学习总结的自我评价
2013/10/02 职场文书
大学生旷课检讨书
2014/01/22 职场文书
个人承诺书
2014/03/26 职场文书
入党思想汇报怎么写
2014/04/03 职场文书
交通违章检讨书
2014/09/21 职场文书
给老婆的道歉信
2015/01/20 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书
应届生简历自我评价
2015/03/11 职场文书
2015年爱牙日活动总结
2015/03/23 职场文书
安娜卡列尼娜观后感
2015/06/11 职场文书
Django中session进行权限管理的使用
2021/07/09 Python
Win10服务全部禁用了怎么启动?Win10服务全部禁用解决方法
2022/09/23 数码科技