PHP - 常量
PHP 中的常量是简单值的名称或标识符。常量值在 PHP 脚本执行期间不能更改。
- 默认情况下,PHP 常量区分大小写。
- 按照约定,常量标识符始终为大写。
- 常量名称以字母或下划线开头,后跟任意数量的字母、数字或下划线。
- 无需在常量之前写美元符号 ($),但是必须在变量之前使用美元符号。
PHP 有效和无效的常量名称示例
以下是 PHP 中有效和无效常量名称的一些示例 -
// 有效的常量名称
define("ONE", "first thing");
define("TWO2", "second thing");
define("THREE_3", "third thing");
define("__THREE__", "third value");
// 无效的常量名称
define("2TWO", "second thing");
PHP 中常量和变量的区别
- 常量不能通过简单赋值来定义;它们只能使用 define() 函数定义。
- 可以在任何位置定义和访问常量,而无需考虑变量范围规则。
- 设置 Constants 后,它们不能被重新定义或未定义。
定义命名常量
PHP 库中的 define() 函数用于在运行时定义命名常量。
define(string $const_name, mixed $value, bool $case = false): bool
参数
- const_name − 常量的名称。
- value − 常量的值。它可以是标量值(int、float、string、bool 或 null)或数组值也被接受。
- case − 如果设置为 true,则常量将定义为不区分大小写。默认行为区分大小写,即 CONSTANT 和 Constant 表示不同的值。
示例 1
以下示例演示了 define() 函数的工作原理 -
<?php
define("CONSTANT", "Hello world.");
echo CONSTANT;
// echo Constant;
?>
第一个 echo 语句输出 CONSTANT 的值。您将获得以下输出 -
Hello world.
但是,当您取消注释第二个 echo 语句时,它将显示以下错误 -
Fatal error: Uncaught Error: Undefined constant "Constant" in hello.php: on line 5
如果将 case 参数设置为 False,则 PHP 不会区分大小写常量。
示例 2
您也可以将数组用作常量的值。请看下面的例子 -
<?php
define(
$name="LANGS",
$value=array('PHP', 'Java', 'Python')
);
var_dump(LANGS);
?>
它将产生以下输出 -
array(3) {
[0]=>
string(3) "PHP"
[1]=>
string(4) "Java"
[2]=>
string(6) "Python"
}
[0]=>
string(3) "PHP"
[1]=>
string(4) "Java"
[2]=>
string(6) "Python"
}
使用 constant() 函数
echo 语句输出定义的常量的值。您还可以使用 constant() 函数。它返回 name 指示的常量的值。
constant(string $name): mixed
如果你需要检索一个常量的值,但不知道它的名字,那么 constant() 函数很有用。即,它存储在变量中或由函数返回。
<?php
define("MINSIZE", 50);
echo MINSIZE;
echo PHP_EOL;
echo constant("MINSIZE"); // same thing as the previous line
?>
它将产生以下输出 -
50
50
50
使用 defined() 函数
PHP 库提供了一个 defined() 函数,用于检查是否存在给定的命名常量。请看下面的例子 -
<?php
define('MAX', 100);
if (defined('MAX')) {
echo MAX;
}
?>
它将产生以下输出 -
100
PHP 还有一个叫做 “get_defined_constants()” 的函数,它返回一个包含所有已定义常量及其值的关联数组。