内容尚空
修改理由:
此投稿已在 6年前 合并。
内容修改:
| Old | New | Differences |
|---|---|---|
| 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 | ``` | |
| 21 | define("常量名", 常量值, 布尔值); | |
| 22 | ``` | |
| 23 | ||
| 24 | 语法解析: | |
| 25 | 1. 常量名代表的是定义的常量的名称; | |
| 26 | 2. 常量值代表的是常量的值; | |
| 27 | 3. 布尔值代表的是常量名是否大小写敏感(默认为 `false`),`true` 代表不敏感,`false` 代表敏感。 | |
| 28 | ||
| 29 | ### 示例 | |
| 30 | ||
| 31 | ```php | |
| 32 | <?php | |
| 33 | ||
| 34 | // 1. 合法的常量名。 | |
| 35 | define("FOO", "something"); | |
| 36 | ||
| 37 | define("FOO2", "something else"); | |
| 38 | ||
| 39 | define("FOO_BAR", "something more"); | |
| 40 | ||
| 41 | // 2. 非法的常量名。 | |
| 42 | define("2FOO", "something"); | |
| 43 | ||
| 44 | // 3. 下面的定义是合法的,但应该避免这样做(自定义常量不要以双下划线 __ 开头): | |
| 45 | // 也许将来有一天 PHP 会定义一个 __FOO__ 的魔术常量, | |
| 46 | // 这样就会与你的代码相冲突。 | |
| 47 | define("__FOO__", "something"); | |
| 48 | ||
| 49 | // 4. 在类中不能使用 define 定义常量。 | |
| 50 | class 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 | ``` | |
| 66 | const 常量名 = 常量值; | |
| 67 | ``` | |
| 68 | ||
| 69 | ### 示例 | |
| 70 | ||
| 71 | ```php | |
| 72 | <?php | |
| 73 | ||
| 74 | class MyClass | |
| 75 | { | |
| 76 | ||
| 77 | const constant = '我是一个常量'; | |
| 78 | ||
| 79 | } | |
| 80 | ||
| 81 | echo MyClass::constant; | |
| 82 | ``` | |
| 83 | ||
| 84 | 运行结果: | |
| 85 | ||
| 86 | ``` | |
| 87 | 我是一个常量 | |
| 88 | ``` |
关于 LearnKu