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()”的函式,該函式返回所有已定義常量及其值的關聯陣列。

廣告