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 相关文章推荐
第九节 绑定 [9]
Oct 09 PHP
PHP strtr() 函数使用说明
Nov 21 PHP
PHP 代码规范小结
Mar 08 PHP
领悟php接口中interface存在的意义
Jun 27 PHP
2个比较经典的PHP加密解密函数分享
Jul 01 PHP
php生成QRcode实例
Sep 22 PHP
10条php编程小技巧
Jul 07 PHP
深入剖析浏览器退出之后php还会继续执行么
May 17 PHP
详谈php静态方法及普通方法的区别
Oct 04 PHP
PHP递归获取目录内所有文件的实现方法
Nov 01 PHP
php 获取xml接口数据的处理方法
May 31 PHP
Laravel如何实现适合Api的异常处理响应格式
Jun 14 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
在DC的漫画和电影中,蝙蝠侠的宿敌,小丑的真名是什么?
2020/04/09 欧美动漫
计算php页面运行时间的函数介绍
2013/07/01 PHP
PHP分页类集锦
2014/11/18 PHP
php微信公众号开发之翻页查询
2018/10/20 PHP
javascript-表格排序(降序/反序)实现介绍(附图)
2013/05/30 Javascript
深入理解Javascript中this的作用域
2014/08/12 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
2016/12/06 Javascript
angularjs实现时间轴效果的示例代码
2017/11/29 Javascript
Vue封装Swiper实现图片轮播效果
2018/02/06 Javascript
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
Javascript实现贪吃蛇小游戏(含详细注释)
2020/10/23 Javascript
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
2015/05/22 Python
python实现mysql的读写分离及负载均衡
2018/02/04 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2018/09/19 Python
详解python校验SQL脚本命名规则
2019/03/22 Python
python实现串口自动触发工作的示例
2019/07/02 Python
python中使用while循环的实例
2019/08/05 Python
Python处理mysql特殊字符的问题
2020/03/02 Python
Softmax函数原理及Python实现过程解析
2020/05/22 Python
Python带参数的装饰器运行原理解析
2020/06/09 Python
美国大型的健身社区和补充商店:Bodybuilding.com
2016/09/06 全球购物
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
计算机系毕业生推荐信
2013/11/06 职场文书
趣味活动策划方案
2014/02/08 职场文书
买卖车协议书
2014/04/21 职场文书
学校搬迁方案
2014/06/15 职场文书
2014年效能监察工作总结
2014/11/21 职场文书
自我检讨书怎么写
2015/05/07 职场文书
JavaScript组合继承详解
2021/11/07 Javascript
Python字符串常规操作小结
2022/04/03 Python
Win11 KB5015814遇安装失败 影响开始菜单性能解决方法
2022/07/15 数码科技
源码安装apache脚本部署过程详解
2022/09/23 Servers