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桌面中心(四) 数据显示
Mar 11 PHP
相对路径转化成绝对路径
Apr 10 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
Jun 30 PHP
php学习之function的用法
Jul 14 PHP
深入PHP许愿墙模块功能分析
Jun 25 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
Jun 30 PHP
php使用APC实现实时上传进度条功能
Oct 26 PHP
php使用number_format函数截取小数的方法分析
May 27 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
Sep 22 PHP
php中输出json对象的值(实现方法)
Mar 07 PHP
PHP创建自己的Composer包方法
Apr 09 PHP
phpMyAdmin通过密码漏洞留后门文件
Nov 20 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之Memcache学习笔记
2013/06/17 PHP
PHP 二维数组根据某个字段排序的具体实现
2014/06/03 PHP
PHP简单实现DES加密解密的方法
2016/07/12 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
一个用js实现控制台控件的代码
2007/09/04 Javascript
JavaScript arguments 多参传值函数
2010/10/24 Javascript
解析JavaScript中点号“.”的多义性
2013/12/02 Javascript
jquery高级编程的最佳实践详解
2014/03/23 Javascript
JavaScript的Date()方法使用详解
2015/06/09 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
微信小程序 JS动态修改样式的实现方法
2018/12/16 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
2019/07/07 Javascript
[45:40]Ti4 冒泡赛第二天NEWBEE vs NaVi 1
2014/07/15 DOTA
python和C语言混合编程实例
2014/06/04 Python
python使用邻接矩阵构造图代码示例
2017/11/10 Python
python leetcode 字符串相乘实例详解
2018/09/03 Python
对Python random模块打乱数组顺序的实例讲解
2018/11/08 Python
python3 写一个WAV音频文件播放器的代码
2019/09/27 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
2020/04/08 Python
CSS3 二级导航菜单的制作的示例
2018/04/02 HTML / CSS
HTML5自定义视频播放器源码
2020/01/06 HTML / CSS
瑞士男士时尚网上商店:Babista
2020/05/14 全球购物
struct与class的区别
2014/02/03 面试题
什么是会话Bean
2015/05/14 面试题
GWT都有什么特性
2016/12/02 面试题
初中语文教学反思
2014/02/02 职场文书
党的群众路线教育实践活动批评与自我批评
2014/02/16 职场文书
名企HR怎样看待求职信
2014/02/23 职场文书
大学运动会加油稿200字(5篇)
2014/09/27 职场文书
党支部2014年度工作总结
2014/12/04 职场文书
服务明星事迹材料
2014/12/29 职场文书
2016优秀青年志愿者事迹材料
2016/02/25 职场文书
拙作再改《我的收音机情缘》
2022/04/05 无线电
python​格式化字符串
2022/04/20 Python
Apache SeaTunnel实现 非CDC数据抽取
2022/05/20 Servers