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语法(4)
Oct 09 PHP
PHP写入WRITE编码为UTF8的文件的实现代码
Jul 07 PHP
php中$this->含义分析
Nov 29 PHP
来自phpguru得Php Cache类源码
Apr 15 PHP
smarty获得当前url的方法分享
Feb 14 PHP
php多个文件及图片上传实例详解
Nov 10 PHP
PHP实现的简单mock json脚本分享
Feb 10 PHP
PHP中判断文件存在使用is_file还是file_exists?
Apr 03 PHP
PHP模拟asp.net的StringBuilder类实现方法
Aug 08 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
Apr 01 PHP
PHP-X系列教程之内置函数的使用示例
Oct 16 PHP
php 字符串中是否包含指定字符串的多种方法
Apr 12 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
用Flash图形化数据(一)
2006/10/09 PHP
php利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
PHP多线程编程之管道通信实例分析
2015/03/07 PHP
php查询mysql数据库并将结果保存到数组的方法
2015/03/18 PHP
JS 自动完成 AutoComplete(Ajax 查询)
2009/07/07 Javascript
window.onresize 多次触发的解决方法
2013/11/08 Javascript
jQuery回调函数的定义及用法实例
2014/12/23 Javascript
Node.js 学习笔记之简介、安装及配置
2015/03/03 Javascript
jquery实现全屏滚动
2015/12/28 Javascript
jQuery多选框选择数量限制方法
2017/02/08 Javascript
JS在浏览器中解析Base64编码图像
2017/02/09 Javascript
微信小程序 支付功能开发错误总结
2017/02/21 Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
2018/08/10 Javascript
angularjs实现对表单输入改变的监控(ng-change和watch两种方式)
2018/08/29 Javascript
使用原生JS实现火锅点餐小程序(面向对象思想)
2019/12/10 Javascript
JavaScript使用canvas绘制随机验证码
2020/02/17 Javascript
python自动化测试之setUp与tearDown实例
2014/09/28 Python
Python实现控制台输入密码的方法
2015/05/29 Python
python链接Oracle数据库的方法
2015/06/28 Python
Python爬虫中urllib库的进阶学习
2018/01/05 Python
numpy判断数值类型、过滤出数值型数据的方法
2018/06/09 Python
Django 限制用户访问频率的中间件的实现
2018/08/23 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
python工具快速为音视频自动生成字幕(使用说明)
2021/01/27 Python
使用CSS3在触屏上为按钮实现激活效果
2013/09/27 HTML / CSS
使用canvas来完成线性渐变和径向渐变的功能的方法示例
2019/07/25 HTML / CSS
HTML5图片层叠的实现示例
2020/07/07 HTML / CSS
运动会100米解说词
2014/01/23 职场文书
中学生民族团结演讲稿
2014/08/27 职场文书
网吧七夕活动策划方案
2014/08/31 职场文书
检讨书范文300字
2015/01/28 职场文书
党员干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
三严三实学习心得体会(精选N篇)
2016/01/05 职场文书
诗词赏析-(浣溪沙)
2019/08/13 职场文书
Python中time标准库的使用教程
2022/04/13 Python