PHP - 常量



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

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

  • 按照惯例,常量标识符始终为大写。

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

  • 不需要在常量之前写美元符号 ($),但是必须在变量之前使用美元符号。

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");

PHP 中常量和变量的区别

  • 常量不能通过简单的赋值来定义;它们只能使用 define() 函数定义。

  • 可以在任何地方定义和访问常量,而无需考虑变量作用域规则。

  • 一旦常量被设置,就不能重新定义或取消定义。

定义命名常量

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

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

参数

  • const_name - 常量的名称。

  • value - 常量的值。它可以是标量值(int、float、string、bool 或 null),也可以接受数组值。

  • case - 如果设置为 true,则常量将被定义为不区分大小写。默认行为区分大小写,即 CONSTANT 和 Constant 表示不同的值。

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

示例 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"
}

使用 constant() 函数

echo 语句输出已定义常量的值。您还可以使用 constant() 函数。它返回由名称指示的常量的值。

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

使用 defined() 函数

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

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

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

它将产生以下输出

100

PHP 还提供了一个名为“get_defined_constants()”的函数,该函数返回所有已定义常量及其值的关联数组。

广告

© . All rights reserved.