PHP静态成员变量


Posted in PHP onFebruary 14, 2017

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

1、静态全局变量

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

特点:

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

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

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

2.静态局部变量

特点:

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

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

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

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

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

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

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

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

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

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

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

PHP 相关文章推荐
PHP.MVC的模板标签系统(四)
Sep 05 PHP
dedecms系统的广告设置代码 基础版本
Apr 09 PHP
php中session_unset与session_destroy的区别分析
Jun 16 PHP
使用Apache的htaccess防止图片被盗链的解决方法
Apr 27 PHP
php实现获取文件mime类型的方法
Feb 11 PHP
正确的PHP匹配UTF-8中文的正则表达式
May 13 PHP
详细解读PHP的Yii框架中登陆功能的实现
Aug 21 PHP
PHP扩展开发教程(总结)
Nov 04 PHP
PHP针对多用户实现更换头像功能
Sep 04 PHP
PHP+JS实现的商品秒杀倒计时用法示例
Nov 15 PHP
Laravel框架使用Redis的方法详解
May 30 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 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
WordPress中给媒体文件添加分类和标签的PHP功能实现
2015/12/31 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
2016/03/18 PHP
Javascript 类、命名空间、代码组织代码
2011/07/31 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
jquery.fastLiveFilter.js实现输入自动过滤的方法
2015/08/11 Javascript
javascript入门之string对象【新手必看】
2016/11/22 Javascript
vue2.0开发实践总结之入门篇
2016/12/06 Javascript
jQuery EasyUI结合zTree树形结构制作web页面
2017/09/01 jQuery
vue代理和跨域问题的解决
2018/07/18 Javascript
详解适配器在JavaScript中的体现
2018/09/28 Javascript
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
Openlayers实现图形绘制
2020/09/28 Javascript
详解Vue的异步更新实现原理
2020/12/22 Vue.js
vue+flask实现视频合成功能(拖拽上传)
2021/03/04 Vue.js
[04:01]2014DOTA2国际邀请赛 TITAN告别Ohaiyo期望明年再战
2014/07/15 DOTA
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
[13:56]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第一场
2018/04/06 DOTA
[20:30]职业巡回赛回顾
2018/08/09 DOTA
[01:00:13]完美世界DOTA2联赛 LBZS vs Forest 第一场 11.07
2020/11/09 DOTA
Python中import导入上一级目录模块及循环import问题的解决
2016/06/04 Python
Ruby元编程基础学习笔记整理
2016/07/02 Python
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
2018/05/30 Python
python爬取个性签名的方法
2018/06/17 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
2020/11/17 Python
CSS3用@font-face实现自定义英文字体
2013/09/23 HTML / CSS
英语专业个人求职自荐信
2013/09/21 职场文书
护理学中专毕业生求职信
2013/11/11 职场文书
餐饮业会计岗位职责
2013/12/19 职场文书
教师档案管理制度
2014/01/23 职场文书
挖掘机司机岗位职责
2014/02/12 职场文书
财务经理岗位职责范本
2015/04/08 职场文书
学习焦裕禄观后感
2015/06/09 职场文书
Nginx进程管理和重载原理详解
2021/04/22 Servers
MySQL索引知识的一些小妙招总结
2021/05/10 MySQL
Vue3如何理解ref toRef和toRefs的区别
2022/02/18 Vue.js