# 怎么使用PHP中const
在PHP中,`const`關鍵字用于定義**類常量**,這是一種在類范圍內不可修改的值。與變量不同,常量的值在定義后不能被重新賦值。本文將詳細介紹`const`的使用方法、注意事項以及實際應用場景。
---
## 一、const的基本語法
### 1. 定義類常量
在類內部使用`const`定義常量,常量名通常全大寫,多個單詞用下劃線分隔:
```php
class MyClass {
const PI = 3.1415926;
const DEFAULT_STATUS = 'active';
}
通過類名::常量名
訪問:
echo MyClass::PI; // 輸出: 3.1415926
使用self::常量名
或static::常量名
:
class Calculator {
const PI = 3.14;
public function getArea($radius) {
return self::PI * $radius * $radius;
}
}
特性 | const | define() |
---|---|---|
作用域 | 類內部(PHP 5.3+支持全局) | 全局 |
編譯時處理 | 是(性能更好) | 運行時處理 |
支持數組值 | PHP 7.0+支持 | 不支持 |
命名空間支持 | 是 | 否 |
示例對比:
// const(類內)
class Config {
const APP_NAME = 'MyApp';
}
// define(全局)
define('APP_NAME', 'MyApp');
class Settings {
const COLORS = ['red', 'green', 'blue'];
}
echo Settings::COLORS[0]; // 輸出: red
允許使用簡單表達式:
class Math {
const PI = 3.14;
const PI_X2 = self::PI * 2;
}
接口中也可以定義常量:
interface Logger {
const LEVEL_ERROR = 'ERROR';
}
echo Logger::LEVEL_ERROR;
命名規范
推薦使用全大寫+下劃線的命名方式(如MAX_SIZE
)。
訪問限制
常量默認為public
,PHP 7.1+支持可見性修飾符:
class Foo {
private const SECRET_KEY = 'abc123';
}
不可修改性
嘗試修改常量會導致致命錯誤:
MyClass::PI = 3.2; // 報錯: Cannot redefine constant
自動加載優化
常量在編譯時解析,比define()
更高效。
class DatabaseConfig {
const HOST = 'localhost';
const USER = 'root';
const PASS = '';
}
class HttpStatus {
const NOT_FOUND = 404;
const FORBIDDEN = 403;
}
class UserRole {
const ADMIN = 1;
const EDITOR = 2;
const GUEST = 3;
}
const
用于定義類常量,具有更好的作用域控制和性能表現。const
而非define()
,除非需要全局常量或動態定義。通過本文的學習,你應該已經掌握了PHP中const
的核心用法,現在就可以在項目中實踐這一特性了!
“`
這篇文章約800字,采用Markdown格式編寫,包含代碼示例、對比表格和實際應用場景,符合技術文檔的規范要求。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。