php类常量的使用详解
可以把在类中始终保持不变的值定义为常量。在定义和使用常量的时候不需要使用 $ 符号。
常量的值必须是一个定值,不能是变量,类属性,数学运算的结果或函数调用。
接口(interface)中也可以定义常量。更多示例见文档中的接口部分。
自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字(如 self,parent 或 static)。
Example #1 定义和使用一个类常量
<?php class MyClass { const constant = 'constant value'; function showConstant() { echo self::constant . "\n"; } } echo MyClass::constant . "\n"; $classname = "MyClass"; echo $classname::constant . "\n"; // 自 5.3.0 起 $class = new MyClass(); $class->showConstant(); echo $class::constant."\n"; // 自 PHP 5.3.0 起 ?>
Example #2 静态数据示例
<?php class foo { // 自 PHP 5.3.0 起 const bar = <<<'EOT' bar EOT; } ?>
和 heredoc 不同,nowdoc 可以用在任何静态数据中。
Note:
Nowdoc 支持是在 PHP 5.3.0 新增的。
更多可以参考这篇文章:http://php.net/manual/zh/language.oop5.constants.php#language.oop5.constants
注意:不像其他的面向对象编程语言,在php中,类不能对某个属性变量使用final修饰符。
如果要声明某个属性为常量,可以使用const关键字,并且无需使用美元符号作为变量名前缀,也无需使用访问权限修饰符。常量意味着虽然可以访问该变量,但不能修改该变量的值。例如下边的代码声明了常量属性con_var:
<?php class Foo{ const con_var="常量属性的值不能被修改<br />"; public function method_a(){ echo (self::con_var); } } echo(Foo::con_var); $myFoo=new Foo(); echo ($myFoo->method_a()); ?>
常量属性不能使用对象访问,仅能使用类访问,在类本体内,可以使用“self::常量名”,在类本体外可以使用“类名::常量名”。
相关推荐
-
PHP面向对象程序设计之类常量用法实例
类常量是PHP面向对象程序设计中非常重要的一个概念,牢固掌握类常量有助于进一步提高PHP面向对象程序设计的水平.本文即以实例形式描述了PHP程序设计中类常量的用法.具体如下: 类常量:类中,保存运行周期内,不变的数据. 定义: const 关键字 const 常量名 = 常量值 例子如下: class Student { public $stu_id; public $stu_name; public $stu_gender; const GENDER_MALE= '男'; const GEND
-
探讨PHP中OO之静态关键字以及类常量的详解
闲着没事随便找了点PHP的关于OO的点资料看看,访问控制修饰符,self,parent,const,static几个关键字,箭头操作符(书上也这么叫..即"->"),范围解析操作符(即双冒号"::"),不过觉得这个跟C#语言里的OO很多是一样的,很容易理解不过还是看看理清PHP里的OO思路还是应该的吧.--------------------------------------------------------------------------------
-
php 类中的常量、静态属性、非静态属性的区别
一.类常量:在类中始终保持不变的值定义为常量 类的常量不能使用访问限制修饰符,他是 public 的,可继承,可以被子类重写,访问类的常量必须使用双冒号 :: ,可以使用类名或类的实例来访问,因为是常量,所以名称不能使用表示变量的符号 $. 可以把在类中始终保持不变的值定义为常量.在定义和使用常量的时候不需要使用 $ 符号. 常量的值必须是一个定值,不能是变量,类属性,数学运算的结果或函数调用. 接口(interface)中也可以定义常量.更多示例见文档中的接口部分. 自 PHP 5.3.0 起
-
php类常量用法实例分析
本文实例讲述了php类常量用法.分享给大家供大家参考.具体如下: <?php /** * PHP类常量 * * 类常量属于类自身,不属于对象实例,不能通过对象实例访问 * 不能用public,protected,private,static修饰 * 子类可以重写父类中的常量,可以通过(parent::)来调用父类中的常量 * 自PHP5.3.0起,可以用一个变量来动态调用类.但该变量的值不能为关键字(如self,parent或static). */ class Foo { // 常量值只能是标量
-
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
一.抽像类(abstract) 在我们实际开发过程中,有些类并不需要被实例化,如前面学习到的一些父类,主要是让子类来继承,这样可以提高代码复用性 语法结构: 复制代码 代码如下: abstract class 类名{ 属性 $name; 方法(){} //方法也可以为abstract 修饰符 function 方法名(){} } 例: 复制代码 代码如下: abstract class animal{ public $name; public $age; //抽象方法不能有方法体,主要是为了让子
-
php类常量的使用详解
可以把在类中始终保持不变的值定义为常量.在定义和使用常量的时候不需要使用 $ 符号. 常量的值必须是一个定值,不能是变量,类属性,数学运算的结果或函数调用. 接口(interface)中也可以定义常量.更多示例见文档中的接口部分. 自 PHP 5.3.0 起,可以用一个变量来动态调用类.但该变量的值不能为关键字(如 self,parent 或 static). Example #1 定义和使用一个类常量 <?php class MyClass { const constant = 'consta
-
java枚举类的构造函数实例详解
java枚举类的构造函数实例详解 首先,给出一个例题如下: enum AccountType { SAVING, FIXED, CURRENT; private AccountType() { System.out.println("It is a account type"); } } class EnumOne { public static void main(String[]args) { System.out.println(AccountType.FIXED); } } T
-
java类的组成结构详解
目录 成员变量 方法 构造器 代码块 成员变量 成员变量便是在类中定义的变量. 例如这样: public class POP { int a = 1; } 而成员变量又分为两种,一种是被static所修饰的类变量,他归类所有,一种是没有被static修饰的实例变量,他归对象所有. 如下: public class POP { int a = 1; static int b = 1; } 正如字面上的意思,归类所有的变量b,他能在类的外部,直接通过POP.b的形式进行操作. 如下程序: publi
-
Java中枚举类的用法示例详解
目录 1.引入枚举类 2.实现枚举类 3.枚举类的使用注意事项 4.枚举的常用方法 5.enum细节 1.引入枚举类 Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等. Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割. 示例: enum Color { RED, GREEN, BLUE; } 2.实现枚举类 接下来我们来看一个一个简单的DEMO示例: /** * java枚举 */ p
-
PHP 中魔术常量的实例详解
PHP 中魔术常量的实例详解 本文介绍下,php编程中的魔术常量,掌握并灵活应用这些方法与常量,对于提高php的编程水平,有很大的帮助.有需要的朋友参考学习下. 魔术常量: namespace ns1; class Test { function __construct() { var_dump(__LINE__); var_dump(__FILE__); var_dump(__DIR__); var_dump(__FUNCTION__); var_dump(__CLASS__); var_du
-
JS定义类的六种方式详解
在前端开发中,经常需要定义JS类.那么在JavaScript中,定义类的方式有几种,分别是什么呢?本文就JS定义类的六中方式说明如下(案例说明): 1.工厂方式 function Car(){ var ocar = new Object; ocar.color = "blue"; ocar.doors = 4; ocar.showColor = function(){ document.write(this.color) }; return ocar; } var car1 = Car
-
Java AtomicInteger类的使用方法详解
首先看两段代码,一段是Integer的,一段是AtomicInteger的,为以下: public class Sample1 { private static Integer count = 0; synchronized public static void increment() { count++; } } 以下是AtomicInteger的: public class Sample2 { private static AtomicInteger count = new AtomicIn
-
js es6系列教程 - 新的类语法实战选项卡(详解)
其实es6的面向对象很多原理和机制还是ES5的,只不过把语法改成类似php和java老牌后端语言中的面向对象语法. 一.用es6封装一个基本的类 class Person{ constructor( uName ){ this.userName = uName; } sayName(){ return this.userName; } } 是不是很向php和java中的类, 其实本质还是原型链,我们往下看就知道了 首先说下语法规则: class Person中的Person就是类名,可以自定义
-
Java中Properties类的操作实例详解
Java中Properties类的操作实例详解 知识学而不用,就等于没用,到真正用到的时候还得重新再学.最近在看几款开源模拟器的源码,里面涉及到了很多关于Properties类的引用,由于Java已经好久没用了,而这些模拟器大多用Java来写,外加一些脚本语言Python,Perl之类的,不得已,又得重新拾起.本文通过看<Java编程思想>和一些网友的博客总结而来,只为简单介绍Properties类的相关操作. 一.Java Properties类 Java中有个比较重要的类Properti
-
Java类的继承实例详解(动力节点Java学院整理)
一.你了解类吗? 在Java中,类文件是以.java为后缀的代码文件,在每个类文件中最多只允许出现一个public类,当有public类的时候,类文件的名称必须和public类的名称相同,若不存在public,则类文件的名称可以为任意的名称(当然以数字开头的名称是不允许的). 在类内部,对于成员变量,如果在定义的时候没有进行显示的赋值初始化,则Java会保证类的每个成员变量都得到恰当的初始化: 1)对于 char.short.byte.int.long.float.double等基本数据类型的
随机推荐
- ASP常用源代码的总结(下)
- C++编程之CString、string与、char数组的转换
- 解javascript 混淆加密收藏
- 日常收集整理正则表达式验证大全
- iPhone/iPad开发通过LocalNotification实现iOS定时本地推送功能
- centos/rhel下实现nginx自启动脚本实例
- php 定义404页面的实现代码
- XSL简明教程(1)XSL入门
- JS实现点击表头表格自动排序(含数字、字符串、日期)
- PHP 上传文件的方法(类)
- C#将hashtable值转换到数组中的方法
- jq实现酷炫的鼠标经过图片翻滚效果
- C# 多线程读取注册表,加载至TreeView
- 浅谈C#中的Infinity和NaN
- 家里的筷子怎么放细菌最少
- ubuntu系统修改时区和时间的方法
- Java实现转跳不同系统使用枚举加switch的方式示例
- webpack4手动搭建Vue开发环境实现todoList项目的方法
- 详解Linux中退出编辑模式的命令
- Django项目主urls导入应用中views的红线问题解决