在php面向对象之final的应用中,讲到了PHP面向对象常用的修饰符final的应用,接下来讲到PHP面向对象中常用的常量修饰符const

我们知道,在PHP中定义常量是通过define()函数来完成的,但在类中定义常量不能使用define(),而需要使用const修饰符。类中的常量使用const定义后,其访问方式和静态成员类似,都是通过类名或在成员方法中使用self访问,但在PHP 5.3.0之后也可以使用对象来访问。被const定义的常量不能重新赋值,如果在程序中试图改变它的值将会出现错误。

<?php
class MyClass {
const CONSTANT = 'CONSTANT value' ; //使用const声明一个常量,并直接赋上初使值
function showConstant() {
echo  self ::CONSTANT ."<br>" ;//使用self访问常量,注意常量前不要加“$”
}
}
echo MyClass:: CONSTANT . "<br>" ; //在类外部使用类名称访问常量,也不要加”$”
$class = new MyClass();
$class->showConstant();
echo $class ::CONSTANT;  // PHP 5.3.0之后
?>

关注细节:使用const定义的常量名称前不需要使用“$“符号,且常量名称通常都是大写的。

试图为const定义的常量赋值,将会出现错误。

<?php
class MyClass {
const CONSTANT = 'CONSTANT value' ;
function setCONSTANT(){
self ::CONSTANT  = 'news CONSTANT' ;//程序运行结果将会出错。
}
}
echo MyClass:: CONSTANT ;
?>

程序运行结果将会出错。

PHP类 const常量访问方法例子相关推荐

  1. PyQt5 技巧篇-增加一个类级变量,类级变量的设置方法,类级“常量“设置方法

    如果想增加一个全局变量来用的话,请看这篇文章: Python全局变量引用设置方法 方法一: 直接设定类级变量. setupUi(args) 是界面运行一定会执行的,所以在这里给self绑定变量,整个类 ...

  2. Effective Java之在公有类中使用访问方法而非公有域(十四)

    1.对于公有类来说,如果类可以在它所在的包的外部进行访问,就提供访问方法,以保留将来改变该类的内部表示法的灵活性. 如果公有域暴露了他的数据域,要想在将来改变它的内部表示法是不可能的,因为公有类的客户 ...

  3. c语言const常量用法,C++ const常量在多文件编程中的3种用法

    <C++多文件编程是什么>一节提到,多文件编程中代码的划分原则是:将变量.函数或者类的声明部分存放在 .h 文件,对应的实现部分放在 .cpp 文件中.值得一提得是,此规律适用于大部分场景 ...

  4. 一文带你了解MySQL之单表访问方法

    前言 对于我们这些MySQL的使用者来说,MySQL其实就是一个软件,平时用的最多的就是查询功能.DBA时不时丢过来一些慢查询语句让优化,我们如果连查询是怎么执行的都不清楚还优化什么,所以是时候掌握真 ...

  5. python定义私有变量的方法_Python怎么修改私有属性 如何访问python类中的私有方法...

    python 类为什么不能定义私有属性和方法 因为b.name[0] = 'zhang'修改的是类属性,类属性是全局的,所有的实例共享,如果想私有化,可以添加 def __init__( self ) ...

  6. 27、Python 面向对象(创建类、创建实例对象、访问属性、内置类属性、对象销毁、类的继承、方法重写、基础重载方法、运算符重载、类属性与方法、下划线双下划线)

    27Python面向对象(Python2) Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. ...

  7. java的知识点15——String基础、String类和常量池、String类常用的方法、字符串相等的判断、组合模式

    String基础 1. String类又称作不可变字符序列. 2. String位于java.lang包中,Java程序默认导入java.lang包下的所有类. 3. Java字符串就是Unicode ...

  8. java怎么访问私有类_如何从Java类的外部访问类的私有方法?

    您可以使用java反射包访问类的私有方法. 步骤1-通过传递声明为私有的方法的方法名称来实例化java.lang.reflect包的Method类. 步骤2-通过将值true传递给setAccessi ...

  9. java定义一个长方形类,该类中具有长方形长宽两种属性,并具有相应的构造方法属性访问方法,计算长方形的周长和面积的方法,要求输出长是5,宽是4的长方形

    定义一个长方形类,该类中具有长方形长宽两种属性,并具有相应的构造方法 属性访问方法,计算长方形的周长和面积的方法,要求输出长是5,宽是4的长方形 public class test3 {public ...

最新文章

  1. TiXml使用详解(转)
  2. 如何在TFS中用命令行提交更新
  3. 【正一专栏】没有对比就没有伤害-恒大亚冠赛有感
  4. 深入理解分布式技术 - 服务注册与发现背后的逻辑
  5. 【机器学习笔记四】分类算法 - 逻辑回归
  6. 开机未发现nvidia控制面板_修改这几个选项,就能提升你的开机速度
  7. SEO:提高关键词排名的28个SEO技巧
  8. 了解MySQL的隐式转化
  9. Ubuntu16.04 安装搭建RED5流媒体服务器
  10. 微信公众号模板消息推送
  11. 深度学习与围棋:为围棋数据设计神经网络
  12. 腾讯实习生腾讯云后台一面面经
  13. [渝粤教育] 苏州农业职业技术学院 日语会话基础 参考 资料
  14. BT种子/磁力/eD2K,P2P和各种下载协议
  15. 如何快速去除图片上的水印
  16. TwinCAT3中GetSystemTime()功能块使用
  17. Maya mental ray 焦散
  18. 某制造业大厂企业信息防泄密案例
  19. 为什么OpenCV计算的帧率是错误的?
  20. vue+echart实现双柱状图

热门文章

  1. mysql入门经典 王雨竹_MySQL入门经典
  2. keil无法识别JTAG仿真器解决办法
  3. 4012: [HNOI2015]开店
  4. bzoj4012开店 动态点分治
  5. 利用IO流一次性读取文件中的所有内容,利用IO流下载文件
  6. Protocol buffer---Protobuf3开发指南
  7. ssm毕设项目新能源汽车销售管理系统gooct(java+VUE+Mybatis+Maven+Mysql+sprnig)
  8. 学习日记——FPGA实验平台板级电路详解
  9. Android歌词秀设计思路(2)歌词处理
  10. 计算机基础课程三板块的分数,中南民族大学计算机基础教学实施办法