首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 系統常數完整參考:魔術常數、核心常數與錯誤代碼

     編輯:PHP 相關知識

魔術常數 (Magic Constants)

根據使用位置動態解析,大小寫不敏感,但慣例全大寫:

常數說明範例輸出
__FILE__目前檔案完整路徑 (含檔名),符號連結已解析/var/www/html/index.php
__DIR__目前檔案所在目錄 (等同 dirname(__FILE__)),PHP 5.3+/var/www/html
__LINE__目前行號42
__FUNCTION__目前函數名稱 (區分大小寫),PHP 5.3+ 含命名空間MyNamespace\myFunction
__CLASS__目前類別名稱 (含命名空間),PHP 5.3+ 含 traitApp\Models\User
__TRAIT__目前 Trait 名稱 (含命名空間),PHP 5.4+App\Traits\Loggable
__METHOD__目前類別方法名稱 (含類別),PHP 5.0+App\Models\User::getName
__NAMESPACE__目前命名空間名稱,PHP 5.3+App\Controllers
ClassName::class類別完整名稱 (編譯期解析),PHP 5.5+App\Models\User

PHP 核心預定義常數

常數說明範例/備註
PHP_VERSIONPHP 版本字串'8.2.10'
PHP_VERSION_ID版本號整數 (方便版本比較)80210 (8.2.10)
PHP_MAJOR_VERSION主版本號8
PHP_MINOR_VERSION次版本號2
PHP_RELEASE_VERSION發布版本號10
PHP_EXTRA_VERSION額外版本標識'-dev', '-RC1'
PHP_ZTS是否啟用 Thread Safety0 或 1
PHP_DEBUG是否為除錯版本0 或 1
PHP_OS作業系統家族 (編譯時)'Linux', 'WINNT', 'Darwin'
PHP_OS_FAMILY作業系統家族 (執行時),PHP 7.2+'Linux', 'Windows', 'Darwin'
PHP_SAPIServer API 類型'cli', 'fpm-fcgi', 'apache2handler'
PHP_EOL平台換行符"\n" (Linux), "\r\n" (Windows)
PHP_INT_MAX整數最大值 (平台相關)9223372036854775807 (64-bit)
PHP_INT_MIN整數最小值-9223372036854775808
PHP_INT_SIZE整數位元組數8 (64-bit)
PHP_FLOAT_MAX浮點數最大值1.7976931348623157E+308
PHP_FLOAT_MIN浮點數最小正值2.2250738585072014E-308
PHP_FLOAT_DIG浮點數精確位數15
PHP_FLOAT_EPSILON浮點數機器精度2.220446049250313E-16
DEFAULT_INCLUDE_PATH預設 include_path'.:/usr/share/php'
PEAR_INSTALL_DIRPEAR 安裝目錄/usr/share/php
PEAR_EXTENSION_DIRPEAR 擴展目錄/usr/lib/php/extensions
PHP_EXTENSION_DIRPHP 擴展目錄/usr/lib/php/extensions
PHP_PREFIXPHP 安裝前綴/usr
PHP_BINDIRPHP 二進制目錄/usr/bin
PHP_LIBDIRPHP 函式庫目錄/usr/lib
PHP_DATADIRPHP 資料目錄/usr/share
PHP_SYSCONFDIRPHP 系統設定目錄/etc
PHP_LOCALSTATEDIRPHP 區域狀態目錄/var
PHP_CONFIG_FILE_PATHphp.ini 路徑/etc/php/8.2/cli
PHP_CONFIG_FILE_SCAN_DIR掃描額外 .ini 目錄/etc/php/8.2/cli/conf.d
PHP_SHLIB_SUFFIX共享庫副檔名'so' 或 'dll'
PHP_FD_SETSIZEselect() 最大檔案描述符1024

布林與 Null 常數

常數等同於備註
TRUEtrue慣例用小寫 true
FALSEfalse慣例用小寫 false
NULLnull慣例用小寫 null

錯誤層級常數 (Error Level Constants)

用於 error_reporting()、set_error_handler()、trigger_error():

常數數值說明
E_ERROR1致命執行錯誤,腳本終止
E_WARNING2執行警告,腳本繼續
E_PARSE4編譯期語法解析錯誤
E_NOTICE8執行期提示 (如未定義變數)
E_CORE_ERROR16PHP 核心啟動致命錯誤
E_CORE_WARNING32PHP 核心啟動警告
E_COMPILE_ERROR64編譯期致命錯誤
E_COMPILE_WARNING128編譯期警告
E_USER_ERROR256使用者觸發致命錯誤
E_USER_WARNING512使用者觸發警告
E_USER_NOTICE1024使用者觸發提示
E_STRICT2048編碼標準建議 (PHP 5.4+ 併入 E_ALL)
E_RECOVERABLE_ERROR4096可捕獲致命錯誤 (型別提示失敗等)
E_DEPRECATED8192棄用功能警告
E_USER_DEPRECATED16384使用者觸發棄用警告
E_ALL32767所有錯誤 (含 E_STRICT)

數學常數 (Math Constants)

常數值 (約)說明
M_PI3.1415926535898圓周率 π
M_E2.718281828459自然對數底 e
M_LOG2E1.442695040889log2(e)
M_LOG10E0.434294481903log10(e)
M_LN20.69314718056ln(2)
M_LN102.302585092994ln(10)
M_PI_21.5707963267949π/2
M_PI_40.78539816339745π/4
M_1_PI0.318309886183791/π
M_2_PI0.636619772367582/π
M_SQRTPI1.7724538509055√π
M_2_SQRTPI1.12837916709552/√π
M_SQRT21.4142135623731√2
M_SQRT31.7320508075689√3
M_SQRT1_20.707106781186551/√2

註:數學常數需啟用 extension=math (PHP 8.0+ 內建) 或定義 define('M_PI', pi()) 等相容寫法。

實用技巧:版本比較與跨平台路徑

<?php
// 版本比較 (利用 PHP_VERSION_ID)
if (PHP_VERSION_ID >= 80100) {
    // PHP 8.1+ 專屬功能 (readonly, fibers, enum 等)
}

// 跨平台路徑分隔符
$path = __DIR__ . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'app.php';
// 或使用 PHP 內建常數
$path = __DIR__ . '/' . 'config/app.php'; // PHP 可自動處理 Windows 路徑

// 取得專案根目錄 (通用模式)
define('ROOT_PATH', dirname(__DIR__, 2)); // PHP 7.0+ 多層 dirname

// 判斷執行環境
if (PHP_SAPI === 'cli') {
    echo "CLI 模式執行\n";
} elseif (str_starts_with(PHP_SAPI, 'fpm')) {
    echo "PHP-FPM 模式\n";
}
?>

總結

PHP 系統常數涵蓋魔術常數 (檔案/行號/類別/方法/命名空間)、核心環境資訊 (版本/OS/SAPI/整數浮點數限制/路徑)、錯誤層級、數學常數四大類。善用它們能撰寫出可攜性強、除錯容易、效能優異的程式碼。建議將常用常數整理成專案 Constants.php 或 bootstrap.php 集中管理,減少硬編碼與重複查閱手冊。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved