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程序中的常见漏洞进行攻击
Oct 09 PHP
php 删除无限级目录与文件代码共享
Nov 22 PHP
php抓取https的内容的代码
Apr 06 PHP
在PHP中使用redis
Nov 04 PHP
php之curl实现http与https请求的方法
Oct 21 PHP
基于thinkPHP实现的微信自定义分享功能示例
Sep 23 PHP
php redis实现对200w用户的即时推送
Mar 04 PHP
自制PHP框架之设计模式
May 07 PHP
PHP基于堆栈实现的高级计算器功能示例
Sep 15 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
Dec 21 PHP
laravel使用Faker数据填充的实现方法
Apr 12 PHP
php array_chunk()函数用法与注意事项
Jul 12 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
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
详解PHP5.6.30与Apache2.4.x配置
2017/06/02 PHP
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
详解Javascript 装载和执行
2014/11/17 Javascript
基于jquery实现页面滚动时顶部导航显示隐藏
2020/04/20 Javascript
微信小程序 开发工具快捷键整理
2016/10/31 Javascript
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
vue中锚点的三种方法
2018/07/06 Javascript
解决angularjs中同步执行http请求的方法
2018/08/13 Javascript
Angular6 用户自定义标签开发的实现方法
2019/01/08 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
基于VUE的v-charts的曲线显示功能
2019/10/01 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
浅谈JavaScript中的“!!”作用
2020/08/03 Javascript
[09:47]2018DOTA2亚洲邀请赛4.5SOLO赛 No[o]ne vs Sumail
2018/04/06 DOTA
详解Python的Lambda函数与排序
2016/10/25 Python
python字典操作实例详解
2017/11/16 Python
Python实现连接postgresql数据库的方法分析
2017/12/27 Python
学python最电脑配置有要求么
2020/07/05 Python
python中yield的用法详解
2021/01/13 Python
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
LACOSTE波兰官网:Polo衫、服装和鞋类
2020/09/29 全球购物
西班牙品牌鞋子、服装和配饰在线商店:Esdemarca
2021/02/17 全球购物
SQL Server提供的3种恢复模型都是什么? 有什么区别?
2012/05/13 面试题
yy婚礼司仪主持词
2014/03/14 职场文书
团委竞选演讲稿
2014/04/24 职场文书
新闻专业毕业生求职信
2014/08/08 职场文书
公司授权委托书范文
2014/09/21 职场文书
法学专业大学生实习自我鉴定
2014/10/05 职场文书
保密工作整改情况汇报
2014/11/06 职场文书
教师自荐信范文
2015/03/06 职场文书
电子商务专业求职信范文
2015/03/19 职场文书
小学生安全教育心得体会
2016/01/15 职场文书