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 相关文章推荐
Apache+php+mysql在windows下的安装与配置图解(最新版)
Nov 30 PHP
php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍
Jun 18 PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
Dec 25 PHP
php实现使用正则将文本中的网址转换成链接标签
Dec 03 PHP
ThinkPHP安装和设置
Jul 27 PHP
Smarty环境配置与使用入门教程
May 11 PHP
php获取flash尺寸详细数据的方法
Nov 12 PHP
/etc/php-fpm.d/www.conf 配置注意事项
Feb 04 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
Apr 27 PHP
php post json参数的传递和接收处理方法
May 31 PHP
PHP调用接口API封装的例子
Oct 11 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
Oct 15 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中使用excel的简单介绍
2013/08/02 PHP
PHP实现根据设备类型自动跳转相应页面的方法
2014/07/24 PHP
php常用文件操作函数汇总
2014/11/22 PHP
php.ini中date.timezone设置详解
2016/11/20 PHP
如何打开php的gd2库
2017/02/09 PHP
php命令行模式代码实例详解
2021/02/26 PHP
文本框根据输入内容自适应高度的代码
2011/10/24 Javascript
js获取php变量的实现代码
2013/08/10 Javascript
js动态修改input输入框的type属性(实现方法解析)
2013/11/13 Javascript
js截取中英文字符串、标点符号无乱码示例解读
2014/04/17 Javascript
JavaScript实现文字与图片拖拽效果的方法
2015/02/16 Javascript
js给selected添加options的方法
2015/05/06 Javascript
jQuery获取页面元素绝对与相对位置的方法
2015/06/10 Javascript
纯javascript实现四方向文本无缝滚动效果
2015/06/16 Javascript
JavaScript实现的多种鼠标拖放效果
2015/11/03 Javascript
javascript 中的 delete及delete运算符
2015/11/15 Javascript
深入浅析同源策略和跨域访问
2015/11/26 Javascript
JS匿名函数类生成方式实例分析
2016/11/26 Javascript
jQuery 如何实现一个滑动按钮开关
2016/12/01 Javascript
vue的全局提示框组件实例代码
2018/02/26 Javascript
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
Vuejs 实现简易 todoList 功能 与 组件实例代码
2018/09/10 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
python 文件与目录操作
2008/12/24 Python
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
浅谈python累加求和+奇偶数求和_break_continue
2020/02/25 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
C语言编程题
2015/03/09 面试题
银行实习生的自我评价
2013/12/09 职场文书
工厂门卫岗位职责范本
2014/04/04 职场文书
《桂花雨》教学反思
2014/04/12 职场文书
银行进社区活动总结
2014/07/07 职场文书
贫困证明书格式及范文
2014/10/15 职场文书
新郎父母婚礼答谢词
2015/09/29 职场文书