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 相关文章推荐
利用static实现表格的颜色隔行显示的代码
Sep 02 PHP
PHP游戏编程25个脚本代码
Feb 08 PHP
PHP中的函数-- foreach()的用法详解
Jun 24 PHP
php 购物车完整实现代码
Jun 05 PHP
简单解析PHP程序的运行流程
Jun 23 PHP
PHP中文字符串截断无乱码解决方法
Oct 10 PHP
php+mysql实现简单登录注册修改密码网页
Nov 30 PHP
PHP那些琐碎的知识点(整理)
May 20 PHP
在laravel5.2中实现点击用户头像更改头像的方法
Oct 14 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 06 PHP
PHP代码加密的方法总结
Mar 13 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
Aug 30 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邮件类
2007/01/03 PHP
PHP MYSQL实现登陆和模糊查询两大功能
2016/02/05 PHP
zend framework中使用memcache的方法
2016/03/04 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
Django中通过定时任务触发页面静态化的处理方式
2018/08/29 PHP
PHP7 新增功能
2021/03/09 PHP
Js中sort()方法的用法
2006/11/04 Javascript
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
jQuery fadeTo方法调整图片的透明度使用介绍
2013/05/06 Javascript
js判断屏幕分辨率的代码
2013/07/16 Javascript
将文本输入框内容加入表中的js代码
2013/08/18 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
2014/06/16 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
2014/08/10 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
javascript中tostring()和valueof()的用法及两者的区别
2015/11/16 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
numpy中loadtxt 的用法详解
2018/08/03 Python
django 自定义过滤器的实现
2019/02/26 Python
Python 依赖库太多了该如何管理
2019/11/08 Python
Pytorch 实现权重初始化
2019/12/31 Python
Python unittest单元测试框架实现参数化
2020/04/29 Python
Python SMTP发送电子邮件的示例
2020/09/23 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
2020/10/14 Python
美国50岁以上单身人士约会平台:SilverSingles
2018/06/29 全球购物
小学教师办公室制度
2014/02/03 职场文书
汉语言文学职业规划
2014/02/14 职场文书
学生打架检讨书
2014/02/14 职场文书
美容院经理岗位职责
2014/04/03 职场文书
合同意向书范本
2014/07/30 职场文书
个人对照检查剖析材料
2014/10/13 职场文书
Nginx tp3.2.3 404问题解决方案
2021/03/31 Servers
5道关于python基础 while循环练习题
2021/11/27 Python
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫
阿里云服务器(windows)手动部署FTP站点详细教程
2022/08/05 Servers