PHP静态成员变量


Posted in PHP onFebruary 14, 2017

静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因为静态成员存在于内存,所以非静态成员可以直接访问类中静态的成员.

1、静态全局变量

定义:在全局变量前,加上关键字 static 该变量就被定义成为了一个静态全局变量。

特点:

A、该变量在全局数据区分配内存。

B、初始化:如果不显式初始化,那么将被隐式初始化为0(自动变量是随机的,除非显式地初始化)。

C、访变量只在本源文件可见,严格的讲应该为定义之处开始到本文件结束。

2.静态局部变量

特点:

A、该变量在全局数据区分配内存。

B、初始化:如果不显式初始化,那么将被隐式初始化为0,以后的函数调用不再进行初始化。

C、它始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义它的函数或 语句块结束时,其作用域随之结束。

静态数据成员和普通数据成员一样遵从public,protected,private访问规则;

因为静态数据成员在全局数据区分配内存,属于本类的所有对象共享,所以,它不属于特定的类对象,在没有产生类对象时其作用域就可见,即在没有产生类的实例时,我们就可以操作它;‘'静态数据成员初始化与一般数据成员初始化不同。静态数据成员初始化的格式为:

数据类型><类名>::<静态数据成员名>=<值>

类的静态数据成员有两种访问形式:

<类对象名>.<静态数据成员名> 或 <类类型名>::<静态数据成员名>

如果静态数据成员的访问权限允许的话(即public的成员),可在程序中,按上述格式来引用静态数据成员 ;

静态数据成员主要用在各个对象都有相同的某项属性的时候。比如对于一个存款类,每个实例的利息都是相同的。所以,应该把利息设为存款类的静态数据成员。这有两个好处,第一,不管定义多少个存款类对象,利息数据成员都共享分配在全局数据区的内存,所以节省存储空间。第二,一旦利息需要改变时,只要改变一次,则所有存款类对象的利息全改变过来了;

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

PHP 相关文章推荐
PHPMYADMIN 简明安装教程 推荐
Mar 07 PHP
php获取json数据所有的节点路径
May 17 PHP
PHP中文竖排转换实现方法
Oct 23 PHP
PHP连接MSSQL方法汇总
Feb 05 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
Mar 20 PHP
PHP中strpos、strstr和stripos、stristr函数分析
Jun 11 PHP
php中文字符串截取多种方法汇总
Oct 06 PHP
PHP实现的自定义图像居中裁剪函数示例【测试可用】
Aug 11 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
Aug 31 PHP
PHP实现微信提现功能(微信商城)
Nov 21 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
Mar 30 PHP
php中array_fill函数的实例用法
Mar 02 PHP
php中序列化与反序列化详解
Feb 13 #PHP
PHP最常用的正则表达式
Feb 13 #PHP
PHP面相对象中的重载与重写
Feb 13 #PHP
PHP中overload与override的区别
Feb 13 #PHP
PHP处理Ajax请求与Ajax跨域问题
Feb 13 #PHP
curl 出现错误的调试方法(必看)
Feb 13 #PHP
PHP中CheckBox多选框上传失败的代码写法
Feb 13 #PHP
You might like
用PHP来写记数器(详细介绍)
2006/10/09 PHP
phpmailer中文乱码问题的解决方法
2014/04/22 PHP
php中替换字符串中的空格为逗号','的方法
2014/06/09 PHP
PHP接收json 并将接收数据插入数据库的实现代码
2015/12/01 PHP
php自定义分页类完整实例
2015/12/25 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
Jquery中显示隐藏的实现代码分析
2011/07/26 Javascript
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
js比较日期大小的方法
2015/05/12 Javascript
js实现漫天星星效果
2017/01/19 Javascript
JavaScript使用ZeroClipboard操作剪切板
2017/05/10 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
2019/11/09 Javascript
python定时检查启动某个exe程序适合检测exe是否挂了
2013/01/21 Python
python进阶教程之循环对象
2014/08/30 Python
python实现带错误处理功能的远程文件读取方法
2015/04/29 Python
python 实现在tkinter中动态显示label图片的方法
2019/06/13 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
tensorflow的计算图总结
2020/01/12 Python
python检查目录文件权限并修改目录文件权限的操作
2020/03/11 Python
python实现批量转换图片为黑白
2020/06/16 Python
浅析python中的del用法
2020/09/02 Python
在PyCharm中安装PaddlePaddle的方法
2021/02/05 Python
HTML5超炫酷粒子效果的进度条的实现示例
2019/08/23 HTML / CSS
欧洲最大的品牌水上运动服装和设备在线零售商:Wuituit Outlet
2018/05/05 全球购物
Big Green Smile德国网上商店:提供各种天然产品
2018/05/23 全球购物
毕业生医学检验求职信
2013/10/16 职场文书
开业主持词
2014/03/21 职场文书
自习课吵闹检讨书范文
2014/09/26 职场文书
群众路线剖析材料范文
2014/10/09 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
立秋之描写立秋的作文(五年级)
2019/08/08 职场文书
高中班主任工作总结(范文)
2019/08/20 职场文书
基于Redis位图实现用户签到功能
2021/05/08 Redis
MySQL中使用or、in与union all在查询命令下的效率对比
2021/05/26 MySQL
Ubuntu18.04下QT开发Android无法连接设备问题解决实现
2022/06/01 Java/Android