PHP 变量和常量:常量的定义和使用 2 个改进

问题

我们通常把不变的值定义成常量,那么我们在 PHP 编程中如何定义常量呢?

回答

在 PHP 编程中,我们一般使用 define 函数和 const 关键字来定义常量。合法的常量名以字母或下划线 _ 开始,后面跟任何字母 A-z,数字 0-9 或下划线 _ 。而在传统的 PHP 编程中,常量标识符总是大写的。

常量和变量的区别如下:

  • 常量命名的前面没有美元符号 $ 修饰符;
  • 常量只能用 define 函数和 const 关键字定义;
  • 常量一旦定义就不能被重新定义或者取消定义;
  • 常量的值只能是标量(数值或者字符串)。

使用 define 定义常量

语法

define("常量名", 常量值, 布尔值);

语法解析:

  1. 常量名代表的是定义的常量的名称;
  2. 常量值代表的是常量的值;
  3. 布尔值代表的是常量名是否大小写敏感(默认为 false),true 代表不敏感,false 代表敏感。

示例

<?php

// 1. 合法的常量名。
define("FOO", "something");

define("FOO2", "something else");

define("FOO_BAR", "something more");

// 2. 非法的常量名。
define("2FOO", "something");

// 3. 下面的定义是合法的,但应该避免这样做(自定义常量不要以双下划线 __ 开头):
// 也许将来有一天 PHP 会定义一个 __FOO__ 的魔术常量,
// 这样就会与你的代码相冲突。
define("__FOO__", "something");

// 4. 在类中不能使用 define 定义常量。
class MyClass {
    define("FOO3", "something");
}

注:define 函数不能在类中定义常量,通过 get_defined_constants() 函数可以获得所有用 define 定义的常量

使用 const 定义常量

const 一般用于在类中定义常量,PHP 在 5.3.0 以后才开始支持 const

语法

const 常量名 = 常量值;

示例

<?php

class MyClass
{
    const constant = '我是一个常量';
}

echo MyClass::constant;

运行结果:

我是一个常量
本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!