Php 简明教程

PHP - Constants

PHP 中的常量是简单值的一个名称或标识符。常量值在 PHP 脚本执行期间不能更改。

  1. 默认情况下,PHP 常量区分大小写。

  2. 根据惯例,常量标识符始终为大写。

  3. 常量名称以字母或下划线开头,后面跟任意数量的字母、数字或下划线。

  4. 不必在常量之前写美元符号($),但必须在变量之前使用美元符号。

Examples of Valid and Invalid Constant Names in PHP

以下是 PHP 中有效和无效常量名称的一些示例 -

// Valid constant names
define("ONE",     "first thing");
define("TWO2",    "second thing");
define("THREE_3", "third thing");
define("__THREE__", "third value");

// Invalid constant names
define("2TWO",    "second thing");

Difference between Constants and Variables in PHP

  1. 不能通过简单赋值定义常量;只能使用 define() 函数定义常量。

  2. 可以定义和访问常量,而无需考虑变量作用域规则。

  3. 一旦常量设置好之后,就不能重新定义或取消定义。

Defining a Named Constant

PHP 函数库中的 define() 函数用于在运行时定义一个命名常量。

define(string $const_name, mixed $value, bool $case = false): bool

Parameters

  1. const_name − 常量的名称。

  2. value − 常量的值。它可以是一个标量值(int、float、string、bool 或 null),也可以接受数组值。

  3. case − 如果设置为 true,常量将被定义为不区分大小写。默认的行为是区分大小写,例如,CONSTANT 和 Constant 代表不同的值。

define() 函数在成功时返回 "true",失败时返回 "false"。

Example 1

以下示例演示了 define() 函数的工作原理:

<?php
   define("CONSTANT", "Hello world.");

   echo CONSTANT;
   // echo Constant;
?>

第一条 echo 语句输出 CONSTANT 的值。您将获得以下 output

Hello world.

但是,当您取消对第二条 echo 语句的注释时,它将显示以下错误:

Fatal error: Uncaught Error: Undefined constant "Constant" in hello.php: on line 5

如果将 case 参数设置为 False,PHP 不区分大小写常量。

Example 2

您还可以将数组用作常量的值。查看以下示例:

<?php
   define(
      $name="LANGS",
      $value=array('PHP', 'Java', 'Python')
   );
   var_dump(LANGS);
?>

它将生成以下 output

array(3) {
  [0]=>
  string(3) "PHP"
  [1]=>
  string(4) "Java"
  [2]=>
  string(6) "Python"
}

Using the constant() Function

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
?>

它将生成以下 output

50
50

Using the defined() Function

PHP 函数库提供了一个 defined() 函数,用于检查是否给定一个已命名的常量存在。查看以下示例:

<?php
   define('MAX', 100);

   if (defined('MAX')) {
      echo MAX;
   }
?>

它将生成以下 output

100

PHP 还有一个名为 "get_defined_constants()" 的函数,它返回一个包含所有已定义常量及其值在内的关联数组。