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 相关文章推荐
优化NFR之一 --MSSQL Hello Buffer Overflow
Oct 09 PHP
PHP入门速成教程
Mar 19 PHP
ubuntu 编译安装php 5.3.3+memcache的方法
Aug 05 PHP
ThinkPHP实现支付宝接口功能实例
Dec 02 PHP
thinkPHP实现表单自动验证
Dec 24 PHP
PHP中使用BigMap实例
Mar 30 PHP
php结合ajax实现手机发红包的案例
Oct 13 PHP
PHP new static 和 new self详解
Feb 19 PHP
php str_replace替换指定次数的方法详解
May 05 PHP
php写app接口并返回json数据的实例(分享)
May 20 PHP
laravel中短信发送验证码的实现方法
Apr 25 PHP
解决tp5在nginx下修改配置访问的问题
Oct 16 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
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
php解决安全问题的方法实例
2019/09/19 PHP
jQuery总体架构的理解分析
2011/03/07 Javascript
javascript跑马灯悬停放大效果实现代码
2012/12/12 Javascript
使用原生js写的一个简单slider
2014/04/29 Javascript
JavaScript中的console.profile()函数详细介绍
2014/12/29 Javascript
jQuery源码解读之removeAttr()方法分析
2015/02/20 Javascript
原生js图片轮播效果实现代码
2016/10/19 Javascript
React进阶学习之组件的解耦之道
2017/08/07 Javascript
AngularJs导出数据到Excel的示例代码
2017/08/11 Javascript
jQuery Dom元素操作技巧
2018/02/04 jQuery
详解JavaScript的BUG和错误
2018/05/07 Javascript
layui radio单选限制下一个radio单选的实例
2019/09/03 Javascript
JS如何把字符串转换成json
2020/02/21 Javascript
Python中for循环详解
2014/01/17 Python
Python中的高级数据结构详解
2015/03/27 Python
python自然语言编码转换模块codecs介绍
2015/04/08 Python
Python3控制路由器——使用requests重启极路由.py
2016/05/11 Python
python实现将多个文件分配到多个文件夹的方法
2019/01/07 Python
解决python中导入win32com.client出错的问题
2019/07/26 Python
python实现对服务器脚本敏感信息的加密解密功能
2019/08/13 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
2020/01/15 Python
Virtualenv 搭建 Py项目运行环境的教程详解
2020/06/22 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
大学生求职中的自我评价
2013/10/01 职场文书
大四毕业生学习总结的自我评价
2013/10/31 职场文书
后勤主管工作职责
2013/12/07 职场文书
文明社区申报材料
2014/08/21 职场文书
中学生秋季运动会广播稿
2014/09/21 职场文书
房屋财产继承协议书范本
2014/11/03 职场文书
2015年六一儿童节演讲稿
2015/03/19 职场文书
信息技术课教学反思
2016/02/23 职场文书
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS
Golang中interface{}转为数组的操作
2021/04/30 Golang
浅谈CSS不规则边框的生成方案
2021/05/25 HTML / CSS
Python基础之变量的相关知识总结
2021/06/23 Python