PHP 保留字不能用作類名、方法名、常量名(可作變量名但不建議)。預定義類與常量由內核/核心擴展提供。本文整理為完整參考表,方便命名避坑與查閱。
以下詞彙具有特殊語法含義,不可作為類/函數/常量名:
__halt_compiler abstract and array as break callable case catch class clone const continue declare default die do echo else elseif empty enddeclare endfor endforeach endif endswitch endwhile eval exit extends final finally fn for foreach function global goto if implements include include_once instanceof insteadof interface isset list match namespace new or print private protected public require require_once return static switch throw trait try unset use var while xor yield yield from
PHP 8.0+ 新增:match, fn (箭頭函數), mixed, never, attribute 等。
魔術常量(非關鍵字但保留):__LINE__ __FILE__ __DIR__ __FUNCTION__ __CLASS__ __METHOD__ __NAMESPACE__ __TRAIT__
true false null
不可作為常量名,但可作變量名(極不推薦)。
| 類名 | 來源/用途 |
|---|---|
stdClass | 通用空對象,(object)[] 轉換結果 |
Exception | 所有異常基類 |
Error | PHP 7+ 引擎錯誤基類 |
Throwable | Exception & Error 共同接口 |
Iterator | 遍歷接口 |
IteratorAggregate | 聚合迭代器接口 |
ArrayAccess | 數組式訪問接口 |
Serializable | 序列化接口 (PHP 8.1 棄用) |
Closure | 匿名函數類 (PHP 5.3+) |
Generator | 生成器對象 |
DateTime | 日期時間對象 |
DateTimeImmutable | 不可變日期時間 |
DateTimeZone | 時區對象 |
ReflectionClass | 反射入口 |
DOMDocument | XML/HTML 文檔 |
PDO | 數據庫連接 |
SplFileInfo | 文件信息 |
WeakReference | 弱引用 (PHP 7.4+) |
Stringable | __toString 接口 (PHP 8.0+) |
self parent static
僅在類內部用於靜態/繼承上下文。
PHP_VERSION PHP_VERSION_ID PHP_MAJOR_VERSION PHP_MINOR_VERSION PHP_RELEASE_VERSION PHP_EXTRA_VERSION PHP_ZTS PHP_DEBUG PHP_MAXPATHLEN PHP_OS PHP_OS_FAMILY PHP_SAPI PHP_EOL PHP_INT_MAX PHP_INT_SIZE PHP_FLOAT_DIG PHP_FLOAT_EPSILON PHP_FLOAT_MIN PHP_FLOAT_MAX DEFAULT_INCLUDE_PATH PEAR_INSTALL_DIR
E_ERROR E_WARNING E_PARSE E_NOTICE E_CORE_ERROR E_CORE_WARNING E_COMPILE_ERROR E_COMPILE_WARNING E_USER_ERROR E_USER_WARNING E_USER_NOTICE E_RECOVERABLE_ERROR E_DEPRECATED E_USER_DEPRECATED E_ALL E_STRICT
DIRECTORY_SEPARATOR PATH_SEPARATOR SEEK_SET SEEK_CUR SEEK_END LOCK_SH LOCK_EX LOCK_UN LOCK_NB
M_PI M_PI_2 M_PI_4 M_1_PI M_2_PI M_SQRT2 M_SQRT1_2 M_E M_LOG2E M_LOG10E M_LN2 M_LN10
JSON_HEX_TAG JSON_HEX_AMP JSON_HEX_APOS JSON_HEX_QUOT JSON_FORCE_OBJECT JSON_PRETTY_PRINT JSON_UNESCAPED_SLASHES JSON_UNESCAPED_UNICODE JSON_INVALID_UTF8_IGNORE JSON_INVALID_UTF8_SUBSTITUTE JSON_THROW_ON_ERROR JSON_PRESERVE_ZERO_FRACTION (PHP 8.2+)
PREG_PATTERN_ORDER PREG_SET_ORDER PREG_OFFSET_CAPTURE PREG_SPLIT_NO_EMPTY PREG_SPLIT_DELIM_CAPTURE PREG_SPLIT_OFFSET_CAPTURE PREG_UNMATCHED_AS_NULL PREG_JIT_STACKLIMIT PREG_NO_ERROR
DATE_ATOM DATE_COOKIE DATE_ISO8601 DATE_RFC2822 DATE_RFC3339 DATE_RSS DATE_W3C
PDO::ATTR_ERRMODE PDO::ERRMODE_SILENT PDO::ERRMODE_WARNING PDO::ERRMODE_EXCEPTION PDO::ATTR_DEFAULT_FETCH_MODE PDO::FETCH_ASSOC PDO::FETCH_NUM PDO::FETCH_OBJ PDO::FETCH_CLASS PDO::FETCH_LAZY PDO::FETCH_BOUND PDO::FETCH_COLUMN PDO::FETCH_CLASS PDO::FETCH_INTO
CURLOPT_*, CURLINFO_*, CURLMOPT_*OPENSSL_*, OPENSSL_ALGO_*, OPENSSL_KEYTYPE_*IMG_*, IMAGETYPE_*MB_CASE_*, MB_ONIGURUMA_VERSIONIntlChar::*, NumberFormatter::*, Collator::*PascalCase,避開所有保留字與預定義類名(如 DateTime, Exception, PDO)。camelCase,避開魔術方法名(__construct, __call, __get 等)。SCREAMING_SNAKE_CASE,避開 true/false/null 及核心常量前綴(PHP_, E_, JSON_ 等)。app_),避免與核心函數衝突。保留字定義語法邊界,預定義類/常量提供核心能力。現代 PHP 開發以「命名空間 + Composer 自動加載」為主,直接衝突極少。但了解保留字與核心常量,能在閱讀源碼、調試錯誤、設計 API 時更從容。建議收藏,命名猶豫時查閱。