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面试题附答案
Jan 07 PHP
一个简单的网页密码登陆php代码
Jul 17 PHP
基于PHP CURL获取邮箱地址的详解
Jun 03 PHP
解析PHP计算页面执行时间的实现代码
Jun 18 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
Apr 05 PHP
php返回字符串中所有单词的方法
Mar 09 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
Jan 08 PHP
PHP类的声明与实例化及构造方法与析构方法详解
Jan 26 PHP
PHP中大括号'{}'用法实例总结
Feb 08 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
Oct 10 PHP
php从数据库读取数据,并以json格式返回数据的方法
Aug 21 PHP
php文件后缀不强制为.php的实操方法
Sep 18 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
dedecms防止FCK乱格式化你的代码的修改方法
2007/03/17 PHP
PHP中Session引起的脚本阻塞问题解决办法
2014/04/08 PHP
使用Codeigniter重写insert的方法(推荐)
2017/03/23 PHP
php模式设计之观察者模式应用实例分析
2019/09/25 PHP
javascript的函数
2007/01/31 Javascript
javascript语句中的CDATA标签的意义
2007/05/09 Javascript
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
javascript开发技术大全-第1章javascript概述
2011/07/03 Javascript
给事件响应函数传参数的四种方式小结
2013/12/05 Javascript
windows8.1+iis8.5下安装node.js开发环境
2014/12/12 Javascript
js实现用户注册协议倒计时的方法
2015/01/21 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
javascript字符串对象常用api函数小结(连接,替换,分割,转换等)
2016/09/20 Javascript
Angular4学习笔记之准备和环境搭建项目
2017/08/01 Javascript
微信小程序之蓝牙的链接
2017/09/26 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
2017/12/28 Javascript
详解React之key的使用和实践
2018/09/29 Javascript
JS栈stack类的实现与使用方法示例
2019/01/31 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
2019/03/13 jQuery
Vue项目总结之webpack常规打包优化方案
2019/06/06 Javascript
vue中input的v-model清空操作
2019/09/06 Javascript
基于redis的小程序登录实现方法流程分析
2020/05/25 Javascript
浅谈vue.watch的触发条件是什么
2020/11/07 Javascript
jQuery实现简单弹幕制作
2020/12/10 jQuery
django定期执行任务(实例讲解)
2017/11/03 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
2020/02/15 Python
python re模块常见用法例举
2021/03/01 Python
英国和世界各地鲜花速递专家:Arena Flowers
2018/02/10 全球购物
巴基斯坦购物网站:Goto
2019/03/11 全球购物
计算机专业自我鉴定
2013/10/15 职场文书
校长竞聘演讲稿
2014/05/16 职场文书
新学期开学演讲稿
2014/05/24 职场文书
2015年安全生产工作总结范文
2015/04/02 职场文书
合作合同协议书
2016/03/21 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书
sass 常用备忘案例详解
2021/09/15 HTML / CSS