PHP静态成员变量


Posted in PHP onFebruary 14, 2017

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

1、静态全局变量

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

特点:

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

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

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

2.静态局部变量

特点:

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

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

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

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

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

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

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

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

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

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

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

PHP 相关文章推荐
WINXP下apache+php4+mysql
Nov 25 PHP
特转载一高手总结PHP学习资源和链接.
Dec 05 PHP
Codeigniter实现多文件上传并创建多个缩略图
Jun 12 PHP
ThinkPHP CURD方法之order方法详解
Jun 18 PHP
php获取textarea的值并处理回车换行的方法
Oct 20 PHP
php限制上传文件类型并保存上传文件的方法
Mar 13 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
Mar 25 PHP
CI框架数据库查询之join用法分析
May 18 PHP
PhpStorm terminal无法输入命令的解决方法
Oct 09 PHP
phpcms的分类名称和类别名称的调用
Jan 05 PHP
php tpl模板引擎定义与使用示例
Aug 09 PHP
php输出反斜杠的实例方法
Sep 19 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来改写404错误页让你的页面更友好
2013/01/24 PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
2015/09/29 PHP
thinkPHP自动验证机制详解
2016/12/05 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
JavaScript 编写匿名函数的几种方法
2010/02/21 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
2012/04/12 Javascript
解析John Resig Simple JavaScript Inheritance代码
2012/12/03 Javascript
jQuery方法简洁实现隔行换色及toggleClass的使用
2013/03/15 Javascript
jQuery弹出层后禁用底部滚动条(移动端关闭回到原位置)
2016/08/29 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
2016/09/16 Javascript
Node.js开启Https的实践详解
2016/10/25 Javascript
bootstrap栅格系统示例代码分享
2017/05/22 Javascript
使用jQuery实现购物车结算功能
2017/08/15 jQuery
阿里大于短信验证码node koa2的实现代码(最新)
2017/09/07 Javascript
node+koa实现数据mock接口的方法
2017/09/20 Javascript
vue 组件中slot插口的具体用法
2018/04/03 Javascript
react中使用swiper的具体方法
2018/05/15 Javascript
webpack常用配置总览(小结)
2019/11/18 Javascript
vue中使用极验验证码的方法(附demo)
2019/12/04 Javascript
Vue快速实现通用表单验证的示例代码
2020/01/09 Javascript
vue路由缓存的几种实现方式小结
2020/02/02 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
python实现的系统实用log类实例
2015/06/30 Python
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
Python占用的内存优化教程
2019/07/28 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
2019/11/29 Python
Python 在函数上添加包装器
2020/07/28 Python
详解Anaconda安装tensorflow报错问题解决方法
2020/11/01 Python
Python 多进程原理及实现
2020/12/21 Python
印度网上购物首选目的地:Flipkart
2016/08/01 全球购物
微软新西兰官方网站:Microsoft New Zealand
2018/08/17 全球购物
西班牙最大的婴儿用品网上商店:Bebitus
2019/05/30 全球购物
西班牙宠物用品和食品网上商店:Tiendanimal
2019/06/06 全球购物
乡镇群众路线教育实践活动整改措施
2014/10/04 职场文书
熟背这些句子,让您的英语口语突飞猛进(135句)
2019/09/06 职场文书
nginx rewrite功能使用场景分析
2022/05/30 Servers