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 相关文章推荐
PHP5 安装方法
Oct 09 PHP
PHP 配置open_basedir 让各虚拟站点独立运行
Nov 12 PHP
php 静态变量的初始化
Nov 15 PHP
php判断变量类型常用方法
Apr 24 PHP
php生成图形验证码几种方法小结
Aug 15 PHP
php递归json类实例
Dec 02 PHP
php $_SESSION会员登录实例分享
Jan 19 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
May 28 PHP
详解Laravel5.6 Passport实现Api接口认证
Jul 27 PHP
YII框架行为behaviors用法示例
Apr 26 PHP
PHP利用DWZ.CN服务生成短网址
Aug 11 PHP
PHP7生产环境队列Beanstalkd用法详解
May 19 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之第八天
2006/10/09 PHP
关于页面优化和伪静态
2009/10/11 PHP
php下连接mssql2005的代码
2011/01/17 PHP
PHP学习之正则表达式
2011/04/17 PHP
Laravel框架中实现使用阿里云ACE缓存服务
2015/02/10 PHP
html中使用javascript调用本地程序(exe、doc等)实现代码
2013/04/26 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
jQuery获取table表中的td标签(实例讲解)
2017/07/28 jQuery
JavaScript实现获取select下拉框中第一个值的方法
2018/02/06 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
2018/11/30 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
2019/05/10 Javascript
vue路由结构可设一层方便动态添加路由操作
2020/08/31 Javascript
python实现巡检系统(solaris)示例
2014/04/02 Python
Python使用正则匹配实现抓图代码分享
2015/04/02 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
2016/06/14 Python
python实现下载文件的三种方法
2017/02/09 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
2019/07/22 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
2020/02/26 Python
python GUI计算器的实现
2020/10/09 Python
python Timer 类使用介绍
2020/12/28 Python
python自动化发送邮件实例讲解
2021/01/04 Python
美国新蛋IT数码商城:Newegg.com
2016/07/21 全球购物
The Hut德国站点:时装、家居用品、美容等
2016/09/23 全球购物
草莓网化妆品澳大利亚站:Strawberrynet AU
2017/12/18 全球购物
美国领先的男士和女士内衣购物网站:Freshpair
2019/02/25 全球购物
茱莉蔻美国官网:Jurlique美国
2020/11/24 全球购物
战友聚会邀请函
2014/01/18 职场文书
外语系毕业生求职自荐信
2014/04/12 职场文书
医疗器械售后服务承诺书
2014/05/21 职场文书
五一促销活动总结
2014/07/01 职场文书
2015年财务部年度工作总结
2015/05/19 职场文书
Python还能这么玩之只用30行代码从excel提取个人值班表
2021/06/05 Python
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python
处理canvas绘制图片模糊问题
2022/05/11 Javascript