php中类和对象:静态属性、静态方法


Posted in PHP onApril 09, 2017

在PHP中,使用关键字 static 修饰成员属性和成员方法被称为静态属性和静态方法。静态属性和静态方法不需要在类被实例化的情况下可以直接使用。

静态属性

与普通的成员属性不同,静态属性属于类本身而不属于类的任何实例。静态属性可以被看做是存储在类当中的全局变量,可以在任何地方通过类来访问它们。

由于静态属性不受任何具体对象的限制,所以不需要建立类实例,而可以直接引用类中的静态属性,使用语法格式如下:

类名称::$静态属性名称

其中,符号”::”被称作范围解析操作符,它可以用于访问静态成员、静态方法和常量,还可以用于覆盖类中的成员和方法。

如果想在同一类的成员方法中访问静态属性,可以通过在该静态属性的名称前加上操作符”self::”来实现。例子如下:

class DaBing{
  static $bing=0;   //定义静态属性 bing
  function addOne(){
    self::$bing++;    //调用同一类中的静态属性 bing
    echo"\$bing的值为:".self::$bing++;
  }
}
$obj=new DaBing();
$obj->addOne();

该程序使静态属性的值加1,执行结果为:1

静态方法

在PHP中将成员方法声明为静态,就称其为静态方法。由于静态方法不受任何具体对象的限制,所以不需要建立类实例就可以直接引用类中的方法。语法格式如下:

类名称::静态方法名称([参数1,参数2,……])
与调用静态属性相同,在类中使用操作符”self::”来表示调用同一类中的静态方法,例子如下:

class DaBing{
  static function addOne($number){ //定义静态方法 addOne()
    echo"\$number+1=";
    echo $number+1;
  }
  static function showResult($number){
    echo"\$number=".$number;
    echo"<br>";
    self::addOne($number); //调用同一类中的静态方法 addOne()
  }
}
$number=100;
DaBing::showResult($number);

该程序执行的结果为:

$number=100
$number+1=101

PHP 相关文章推荐
PHP 学习路线与时间表
Feb 21 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
Jul 15 PHP
PHP抓取、分析国内视频网站的视频信息工具类
Apr 02 PHP
浅析PHP微信支付通知的处理方式
May 25 PHP
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
Jul 04 PHP
ThinkPHP文件上传实例教程
Aug 22 PHP
php+mysqli数据库连接的两种方式
Jan 28 PHP
详解PHP实现定时任务的五种方法
Jul 25 PHP
PHP 中使用explode()函数切割字符串为数组的示例
May 06 PHP
PHP实现普通hash分布式算法简单示例
Aug 06 PHP
TP3.2.3框架文件上传操作实例详解
Jan 23 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 27 PHP
php 类中的常量、静态属性、非静态属性的区别
Apr 09 #PHP
PHP对象相关知识总结
Apr 09 #PHP
YII2框架中使用yii.js实现的post请求
Apr 09 #PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
Apr 09 #PHP
CentOS系统中PHP安装扩展的方式汇总
Apr 09 #PHP
PHP将身份证正反面两张照片合成一张图片的代码
Apr 08 #PHP
ThinkPHP中调用PHPExcel的实现代码
Apr 08 #PHP
You might like
php中将网址转换为超链接的函数
2011/09/02 PHP
php模板函数 正则实现代码
2012/10/15 PHP
探讨多键值cookie(php中cookie存取数组)的详解
2013/06/06 PHP
php中利用explode函数分割字符串到数组
2014/02/08 PHP
wordpress网站转移到本地运行测试的方法
2017/03/15 PHP
PHP判断当前使用的是什么浏览器(推荐)
2019/10/27 PHP
javascript读取xml
2006/11/04 Javascript
限制文本字节数js代码
2007/03/06 Javascript
js控制div及网页相关属性的代码
2009/12/19 Javascript
JavaScript操作XML 使用百度RSS作为新闻源示例
2012/02/17 Javascript
js 异步操作回调函数如何控制执行顺序
2013/12/24 Javascript
jquery 动态合并单元格的实现方法
2016/08/26 Javascript
AngularJs Injecting Services Into Controllers详解
2016/09/02 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
2016/10/15 Javascript
vue中的event bus非父子组件通信解析
2017/10/27 Javascript
nodeJs实现基于连接池连接mysql的方法示例
2018/02/10 NodeJs
Vue页面骨架屏注入方法
2018/05/13 Javascript
解决vuex刷新状态初始化的方法实现
2019/08/15 Javascript
vue - vue.config.js中devServer配置方式
2019/10/30 Javascript
Python中endswith()函数的基本使用
2015/04/07 Python
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
在windows下快速搭建web.py开发框架方法
2016/04/22 Python
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
pandas按若干个列的组合条件筛选数据的方法
2018/04/11 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
2018/04/28 Python
Python3使用TCP编写一个简易的文件下载器功能
2019/05/08 Python
Python微信操控itchat的方法
2019/05/31 Python
Python爬虫实现百度翻译功能过程详解
2020/05/29 Python
Python使用pickle进行序列化和反序列化的示例代码
2020/09/22 Python
CSS3实现的炫酷菜单代码分享
2015/03/12 HTML / CSS
ajax是什么及其工作原理
2012/02/08 面试题
请假条格式范文
2014/04/10 职场文书
《青蛙看海》教学反思
2014/04/23 职场文书
单方离婚协议书范本2014
2014/10/28 职场文书
Python 线程池模块之多线程操作代码
2021/05/20 Python
python基础入门之字典和集合
2021/06/13 Python