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&amp;MYSQL留言板源码
Jul 19 PHP
php 图片上添加透明度渐变的效果
Jun 29 PHP
php下关于Cannot use a scalar value as an array的解决办法
Aug 08 PHP
php iconv() : Detected an illegal character in input string
Dec 05 PHP
PHP中遍历stdclass object的实现代码
Jun 09 PHP
深入apache配置文件httpd.conf的部分参数说明
Jun 28 PHP
php查看请求头信息获取远程图片大小的方法分享
Dec 25 PHP
PHP同时连接多个mysql数据库示例代码
Mar 17 PHP
MySql数据库查询结果用表格输出PHP代码示例
Mar 20 PHP
PHP实现中文圆形印章特效
Jun 19 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
Dec 05 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/02/27 PHP
PHP实现批量生成App各种尺寸Logo
2015/03/19 PHP
smarty模板引擎之分配数据类型
2015/03/30 PHP
Windows2003下php5.4安装配置教程(IIS)
2016/06/30 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
php两点地理坐标距离的计算方法
2018/12/29 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
2020/05/25 PHP
js DOM模型操作
2009/12/28 Javascript
比较不错的JS/JQuery显示或隐藏文本的方法
2014/02/13 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
JavaScript实现彩虹文字效果的方法
2015/04/16 Javascript
JavaScript的设计模式经典之代理模式
2016/02/24 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
2016/08/09 Javascript
几行js代码实现自适应
2017/02/24 Javascript
Mongoose经常返回e11000 error的原因分析
2017/03/29 Javascript
JavaScript 基础表单验证示例(纯Js实现)
2017/07/20 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
2018/04/26 Javascript
vue双向绑定及观察者模式详解
2019/03/19 Javascript
如何在postman测试用例中实现断言过程解析
2020/07/09 Javascript
pyv8学习python和javascript变量进行交互
2013/12/04 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
2018/08/04 Python
破解安装Pycharm的方法
2018/10/19 Python
python:接口间数据传递与调用方法
2018/12/17 Python
Python基础学习之时间转换函数用法详解
2019/06/18 Python
python实现单链表的方法示例
2019/09/03 Python
python+opencv实现车牌定位功能(实例代码)
2019/12/24 Python
深入了解如何基于Python读写Kafka
2019/12/31 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
Python安装OpenCV的示例代码
2020/03/05 Python
HQhair美国/加拿大:英国化妆品、美容及美发产品商城
2019/04/15 全球购物
JPA面试常见问题
2016/11/14 面试题
学习十八大报告感言
2014/02/28 职场文书
交通事故一次性赔偿协议书范本
2014/11/02 职场文书
公司岗位说明书
2015/10/08 职场文书
jquery插件实现搜索历史
2021/04/24 jQuery
Spring实现内置监听器
2021/07/09 Java/Android