當前位置: 首頁> 最新文章列表> 使用defined() 檢查某個常量和get_defined_constants() 的關係

使用defined() 檢查某個常量和get_defined_constants() 的關係

M66 2025-05-22

defined()函數用於檢查指定的常量是否已經定義。這個函數返回一個布爾值,如果常量已定義則返回true ,否則返回false

文法:

 defined(string $name): bool
  • $name :常量的名稱,作為字符串傳入。

示例:

 <?php
define("SITE_URL", "http://m66.net");

if (defined("SITE_URL")) {
    echo "常量 SITE_URL 已定義,值為:" . SITE_URL;
} else {
    echo "常量 SITE_URL 未定義";
}
?>

在上面的代碼中,我們首先使用define()定義了常量SITE_URL ,然後通過defined()檢查它是否已定義。結果會輸出"常量SITE_URL 已定義,值為:http://m66.net"

如果我們嘗試檢查一個未定義的常量, defined()會返回false

 <?php
if (defined("NON_EXISTENT_CONSTANT")) {
    echo "常量 NON_EXISTENT_CONSTANT 已定義";
} else {
    echo "常量 NON_EXISTENT_CONSTANT 未定義";
}
?>

輸出結果為"常量NON_EXISTENT_CONSTANT 未定義" ,因為該常量並沒有被定義。

二、 get_defined_constants()函數的作用

get_defined_constants()函數返回一個數組,其中包含了當前所有已定義的常量,包括內置常量和用戶自定義常量。這個函數對於調試和查看系統中已有常量非常有用。

文法:

 get_defined_constants(bool $categorize = false): array
  • $categorize (可選):如果設置為true ,返回的數組會按類別分組。

示例:

 <?php
define("SITE_NAME", "m66.net");
define("DEBUG_MODE", true);

$constants = get_defined_constants();

echo "<pre>";
print_r($constants);
echo "</pre>";
?>

運行該代碼後,你將看到所有當前定義的常量,包括PHP 內置常量和我們自定義的SITE_NAMEDEBUG_MODE常量。

分類常量:

如果我們設置$categorizetrue ,則返回的數組會按照類別進行分組,常量按組存儲。如下所示:

 <?php
$categorized_constants = get_defined_constants(true);
echo "<pre>";
print_r($categorized_constants);
echo "</pre>";
?>

三、 defined()get_defined_constants()的關係

defined()get_defined_constants()都涉及到常量的檢查和操作,但它們的功能有所不同。

  • defined()用於檢查某個常量是否已定義,返回的是布爾值,適用於單個常量的檢查。

  • get_defined_constants()用於獲取所有已定義的常量,返回一個數組,適用於查看或調試所有常量。

例如,我們可以通過get_defined_constants()列出所有常量,並結合defined()來驗證某些常量是否存在。

示例: