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

PHP 保留字、預定義類、預定義常量完整參考手冊

     編輯:PHP 綜合知識

前言

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所有異常基類
ErrorPHP 7+ 引擎錯誤基類
ThrowableException & Error 共同接口
Iterator遍歷接口
IteratorAggregate聚合迭代器接口
ArrayAccess數組式訪問接口
Serializable序列化接口 (PHP 8.1 棄用)
Closure匿名函數類 (PHP 5.3+)
Generator生成器對象
DateTime日期時間對象
DateTimeImmutable不可變日期時間
DateTimeZone時區對象
ReflectionClass反射入口
DOMDocumentXML/HTML 文檔
PDO數據庫連接
SplFileInfo文件信息
WeakReference弱引用 (PHP 7.4+)
Stringable__toString 接口 (PHP 8.0+)

四、特殊類名(不可用作用戶類名)

self  parent  static

僅在類內部用於靜態/繼承上下文。

五、核心預定義常量(節選高頻)

PHP 核心

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 (json_encode/decode 選項)

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+)

PCRE 正則修飾符

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

DateTime 格式常量

DATE_ATOM   DATE_COOKIE   DATE_ISO8601   DATE_RFC2822   DATE_RFC3339
DATE_RSS    DATE_W3C

PDO 屬性/模式

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

六、擴展相關常量(需對應擴展安裝)

  • cURL:CURLOPT_*, CURLINFO_*, CURLMOPT_*
  • OpenSSL:OPENSSL_*, OPENSSL_ALGO_*, OPENSSL_KEYTYPE_*
  • GD:IMG_*, IMAGETYPE_*
  • Mbstring:MB_CASE_*, MB_ONIGURUMA_VERSION
  • Intl:IntlChar::*, NumberFormatter::*, Collator::*

七、命名建議避坑指南

  1. 類名:PascalCase,避開所有保留字與預定義類名(如 DateTime, Exception, PDO)。
  2. 方法名:camelCase,避開魔術方法名(__construct, __call, __get 等)。
  3. 常量名:SCREAMING_SNAKE_CASE,避開 true/false/null 及核心常量前綴(PHP_, E_, JSON_ 等)。
  4. 全局函數:項目統一前綴(如 app_),避免與核心函數衝突。
  5. Composer 自動加載遵循 PSR-4,命名空間即隔離,類名重複極低風險。

總結

保留字定義語法邊界,預定義類/常量提供核心能力。現代 PHP 開發以「命名空間 + Composer 自動加載」為主,直接衝突極少。但了解保留字與核心常量,能在閱讀源碼、調試錯誤、設計 API 時更從容。建議收藏,命名猶豫時查閱。

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