PHP静态方法和静态属性及常量属性的区别与介绍


Posted in PHP onMarch 22, 2019

PHP中若使用static关键字来修饰属性、方法,称这些属性、方法为静态属性、静态方法。static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为“类属性”或“类方法”。

程序中为什么要使用静态方法和属性呢?它们有几个特性是比较有用的:不需要实例化类就可以访问静态方法和属性,在代码的任何地方都可以使用!

<?php
class Example{
 static public $num = 0;
 static public function staticFunc(){
 self::$num++;
 print self::$num;
 }
}
echo Example::$num;
echo Example::staticFunc();
?>

需要注意的是:

1.静态方法不能访问普通属性,只能访问静态属性

2.静态方法是以类为作用域的,所以不用实例化就可以使用::来连接静态属性和静态方法

3.静态方法中不能使用伪关键词

那么常量属性和静态属性有什么区别呢?

<?php
class Example{
  const NUM = 0;
  //...
}
?>

常量属性不以$开头 而是以大写字母命名,他与静态属性的区别是它不可以被重新复制,否则会解析错误。

常量属性

有些属性是不能改变的

在PHP 5可以在类中定义常量属性,和全局变量一样,类常量一旦设置后就不能改变。常量属性用const关键字来声明。常量不像常规属性那样以 $ 开头。按照惯例,只能用大写字母来命名常量,如下所示:

class shopProduct {
    constAVAILABLE = 0;
    //…
}

常量属性只包含基本数据类型的值。不能将一个对象指派给常量。像静态属性一样,只能通过类而不能通过类的实例访问常量属性。引用常量时不需要用 $ 作为前导符,如下所示:

echoshopProduct::AVAILABLE;

给已经声明过的常量赋值会引起解析错误。

当需要在类的所有实例中都能访问某个属性,并且属性值无需改变时,应该使用常量。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

PHP 相关文章推荐
PHPlet在Windows下的安装
Oct 09 PHP
PHP 和 MySQL 基础教程(四)
Oct 09 PHP
PHP 服务器配置(使用Apache及IIS两种方法)
Jun 01 PHP
PHP 单引号与双引号的区别
Nov 24 PHP
php 格式化数字的时候注意数字的范围
Apr 13 PHP
PHP为表单获取的URL 地址预设 http 字符串函数代码
May 26 PHP
如何使用php判断所处服务器操作系统的类型
Jun 20 PHP
php 无限级分类,超级简单的无限级分类,支持输出树状图
Jun 29 PHP
thinkphp中html:list标签传递多个参数实例
Oct 30 PHP
理清PHP在Linxu下执行时的文件权限方法
Jun 07 PHP
php学习笔记之mb_strstr的基本使用
Feb 03 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
Oct 30 PHP
简单实用的PHP文本缓存类实例
Mar 22 #PHP
PHP设计模式之PHP迭代器模式讲解
Mar 22 #PHP
ThinkPHP5.1表单令牌Token失效问题的解决
Mar 22 #PHP
PHP iconv()函数字符编码转换的问题讲解
Mar 22 #PHP
PHP里的$_GET数组介绍
Mar 22 #PHP
PHP匿名函数(闭包函数)详解
Mar 22 #PHP
PHP利用递归函数实现无限级分类的方法
Mar 22 #PHP
You might like
用PHP产生动态的影像图
2006/10/09 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
2013/06/06 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
php实现微信支付之退款功能
2018/05/30 PHP
asp批量修改记录的代码
2008/06/25 Javascript
关于javascript DOM事件模型的两件事
2010/07/22 Javascript
简短几句 通俗解释javascript的闭包
2011/01/17 Javascript
javascript实现window.print()去除页眉页脚
2014/12/30 Javascript
jQuery获得指定元素坐标的方法
2015/04/14 Javascript
jquery实现两个图片渐变切换效果的方法
2015/06/25 Javascript
JavaScript学习笔记之DOM基础 2.4
2015/08/14 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
KnockoutJs快速入门教程
2016/05/16 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
2016/10/08 Javascript
javascript简易画板开发
2020/04/12 Javascript
vue中render函数的使用详解
2018/10/12 Javascript
微信二次分享报错invalid signature问题及解决方法
2019/04/01 Javascript
JavaScript变量Dom对象的所有属性
2020/04/30 Javascript
vue在图片上传的时候压缩图片
2020/11/18 Vue.js
vue3.0中使用element的完整步骤
2021/03/04 Vue.js
使用graphics.py实现2048小游戏
2015/03/10 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
详解pyppeteer(python版puppeteer)基本使用
2019/06/12 Python
Django 实现前端图片压缩功能的方法
2019/08/07 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
2020/01/05 Python
Python 统计位数为偶数的数字代码详解
2020/03/15 Python
迟到检讨书400字
2014/01/13 职场文书
助理政工师申报材料
2014/06/03 职场文书
八荣八耻的活动方案
2014/08/16 职场文书
大学生党员自我批评思想汇报
2014/10/10 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
闪闪的红星观后感
2015/06/08 职场文书
红色故事汇观后感
2015/06/18 职场文书
学风建设主题班会
2015/08/17 职场文书
vue实现列表垂直无缝滚动
2022/04/08 Vue.js