LeoYao 4年前

修改理由:

内容尚空

此投稿已在 4年前 合并。

内容修改:

红色背景 为原始内容

绿色背景 为新增或者修改的内容

OldNewDifferences
1 
 1## 问题
 2
 3我们通常把不变的值定义成常量,那么我们在 PHP 编程中如何定义常量呢?
 4
 5## 回答
 6
 7在 PHP 编程中,我们一般使用 `define` 函数和 `const` 关键字来定义常量。**合法的常量名以字母或下划线 `_` 开始,后面跟任何字母 `A-z`,数字 `0-9` 或下划线 `_` **。而在传统的 PHP 编程中,常量标识符总是大写的。
 8
 9常量和变量的区别如下:
 10
 11-  常量命名的前面没有美元符号 `$` 修饰符;
 12-  常量只能用 `define` 函数和 `const` 关键字定义;
 13-  常量一旦定义就不能被重新定义或者取消定义;
 14-  常量的值只能是标量(数值或者字符串)。
 15
 16## 使用 `define` 定义常量
 17
 18### 语法
 19
 20```
 21define("常量名", 常量值, 布尔值);
 22```
 23
 24语法解析:
 251. 常量名代表的是定义的常量的名称;
 262. 常量值代表的是常量的值;
 273. 布尔值代表的是常量名是否大小写敏感(默认为 `false`),`true` 代表不敏感,`false` 代表敏感。
 28
 29### 示例
 30
 31```php
 32<?php
 33
 34// 1. 合法的常量名。
 35define("FOO",    "something");
 36
 37define("FOO2",   "something else");
 38
 39define("FOO_BAR", "something more");
 40
 41// 2. 非法的常量名。
 42define("2FOO",   "something");
 43
 44// 3. 下面的定义是合法的,但应该避免这样做(自定义常量不要以双下划线 __ 开头):
 45// 也许将来有一天 PHP 会定义一个 __FOO__ 的魔术常量,
 46// 这样就会与你的代码相冲突。
 47define("__FOO__", "something");
 48
 49// 4. 在类中不能使用 define 定义常量。
 50class MyClass {
 51
 52   define("FOO3", "something");
 53   
 54}
 55```
 56
 57注:`define` 函数不能在类中定义常量,通过 `get_defined_constants()` 函数可以获得所有用 `define` 定义的常量
 58
 59## 使用 `const` 定义常量
 60
 61`const` 一般用于在类中定义常量,PHP 在 5.3.0 以后才开始支持 `const`。
 62
 63### 语法
 64
 65```
 66const 常量名 = 常量值;
 67```
 68
 69### 示例
 70
 71```php
 72<?php
 73
 74class MyClass
 75{
 76
 77   const constant = '我是一个常量';
 78
 79}
 80
 81echo MyClass::constant;
 82```
 83
 84运行结果:
 85
 86```
 87我是一个常量
 88```