
- PHP 教程
- PHP - 首頁
- PHP - 簡介
- PHP - 安裝
- PHP - 歷史
- PHP - 特性
- PHP - 語法
- PHP - Hello World
- PHP - 註釋
- PHP - 變數
- PHP - Echo/Print
- PHP - var_dump
- PHP - $ 和 $$ 變數
- PHP - 常量
- PHP 魔術常量
- PHP - 資料型別
- PHP - 型別轉換
- PHP - 型別混淆
- PHP - 字串
- PHP - 布林值
- PHP - 整數
- PHP - 檔案與I/O
- PHP - 數學函式
- PHP - Heredoc 和 Nowdoc
- PHP - 複合型別
- PHP - 檔案包含
- PHP - 日期與時間
- PHP - 標量型別宣告
- PHP - 返回型別宣告
- PHP 運算子
- PHP - 運算子
- PHP - 算術運算子
- PHP - 比較運算子
- PHP - 邏輯運算子
- PHP - 賦值運算子
- PHP - 字串運算子
- PHP - 陣列運算子
- PHP - 條件運算子
- PHP - 展開運算子
- PHP - 空值合併運算子
- PHP - 比較運算子(太空船運算子)
- PHP 控制語句
- PHP - 決策
- PHP - If…Else 語句
- PHP - Switch 語句
- PHP - 迴圈型別
- PHP - For 迴圈
- PHP - Foreach 迴圈
- PHP - While 迴圈
- PHP - Do…While 迴圈
- PHP - Break 語句
- PHP - Continue 語句
- PHP 函式
- PHP - 函式
- PHP - 函式引數
- PHP - 按值傳遞
- PHP - 按引用傳遞
- PHP - 預設引數
- PHP - 具名引數
- PHP - 可變引數
- PHP - 返回值
- PHP - 傳遞函式
- PHP - 遞迴函式
- PHP - 型別提示
- PHP - 變數作用域
- PHP - 嚴格型別
- PHP - 匿名函式
- PHP - 箭頭函式
- PHP - 可變函式
- PHP - 區域性變數
- PHP - 全域性變數
- PHP 超全域性變數
- PHP - 超全域性變數
- PHP - $GLOBALS
- PHP - $_SERVER
- PHP - $_REQUEST
- PHP - $_POST
- PHP - $_GET
- PHP - $_FILES
- PHP - $_ENV
- PHP - $_COOKIE
- PHP - $_SESSION
- PHP 檔案處理
- PHP - 檔案處理
- PHP - 開啟檔案
- PHP - 讀取檔案
- PHP - 寫入檔案
- PHP - 檔案是否存在
- PHP - 下載檔案
- PHP - 複製檔案
- PHP - 追加檔案
- PHP - 刪除檔案
- PHP - 處理CSV檔案
- PHP - 檔案許可權
- PHP - 建立目錄
- PHP - 列出檔案
- 面向物件PHP
- PHP - 面向物件程式設計
- PHP - 類和物件
- PHP - 建構函式和解構函式
- PHP - 訪問修飾符
- PHP - 繼承
- PHP - 類常量
- PHP - 抽象類
- PHP - 介面
- PHP - 特性
- PHP - 靜態方法
- PHP - 靜態屬性
- PHP - 名稱空間
- PHP - 物件迭代
- PHP - 封裝
- PHP - final 關鍵字
- PHP - 過載
- PHP - 克隆物件
- PHP - 匿名類
- PHP Web 開發
- PHP - Web 概念
- PHP - 表單處理
- PHP - 表單驗證
- PHP - 表單郵件/URL
- PHP - 完整表單
- PHP - 檔案包含
- PHP - GET & POST
- PHP - 檔案上傳
- PHP - Cookie
- PHP - Session
- PHP - Session 選項
- PHP - 傳送郵件
- PHP - 輸入過濾
- PHP - Post-Redirect-Get (PRG)
- PHP - 快閃記憶體訊息
- PHP 高階
- PHP - MySQL
- PHP.INI 檔案配置
- PHP - 陣列解構
- PHP - 編碼規範
- PHP - 正則表示式
- PHP - 錯誤處理
- PHP - Try…Catch
- PHP - 除錯
- PHP - 針對 C 開發者
- PHP - 針對 PERL 開發者
- PHP - 框架
- PHP - Core PHP 與框架
- PHP - 設計模式
- PHP - 過濾器
- PHP - JSON
- PHP - 異常
- PHP - 特殊型別
- PHP - 雜湊
- PHP - 加密
- PHP - is_null() 函式
- PHP - 系統呼叫
- PHP - HTTP 認證
- PHP - 交換變數
- PHP - Closure::call()
- PHP - 過濾後的 unserialize()
- PHP - IntlChar
- PHP - CSPRNG
- PHP - 預期
- PHP - use 語句
- PHP - 整數除法
- PHP - 已棄用的特性
- PHP - 已移除的擴充套件和SAPI
- PHP - PEAR
- PHP - CSRF
- PHP - FastCGI 程序
- PHP - PDO 擴充套件
- PHP - 內建函式
- PHP 有用資源
- PHP - 速查表
- PHP - 問答
- PHP - 快速指南
- PHP - 線上編譯器
- PHP - 有用資源
- PHP - 討論
PHP 魔術常量
PHP 中的魔術常量是預定義的常量。它們可用於任何執行它們的指令碼,並且它們的值會根據使用位置而改變。與在執行時解析的常規常量不同,所有這些“魔術”常量都在編譯時解析。
PHP 中有九個魔術常量。這些特殊常量不區分大小寫。
__LINE__
它返回檔案的當前行號。下面的示例顯示瞭如何使用此魔術常量。
<?php $x="Hello World"; echo "$x. The current Line number is " . __LINE__ . "."; ?>
它將產生以下輸出:
Hello World. The current Line number is 5.
__FILE__
此魔術常量返回檔案的完整路徑和檔名。如果在 include 內部使用,則返回包含檔案的檔名。檢視以下示例:
<?php $x="Hello World"; echo "$x. Current PHP script name is " . __FILE__ . "."; ?>
它將產生以下輸出:
Hello World. Current PHP script name is C:\xampp\htdocs\hello.php.
__DIR__
此魔術常量返回檔案所在的目錄。如果在 include 內部使用,則返回包含檔案所在的目錄。這等效於 "dirname(__FILE__)”。此目錄名不包含尾部斜槓,除非它是根目錄。檢視以下示例:
<?php $x="Hello World"; echo "$x. Directory of the Current PHP script name is " . __DIR__ . "."; ?>
它將在瀏覽器上顯示以下輸出:
Hello World. Directory of the Current PHP script name is C:\xampp\htdocs.
__FUNCTION__
此魔術常量返回使用該常量的函式名,或者對於匿名函式返回 {closure}。下面的示例顯示了它的工作方式:
<?php function hello(){ $x="Hello World"; echo "$x. The function name is ". __FUNCTION__ . ""; } hello(); ?>
它將產生以下輸出:
Hello World. The function name is hello
如果此魔術常量在函式外部使用,則將輸出為空。
__CLASS__
此常量返回類的名稱。類名包括其宣告所在的名稱空間。檢視以下示例:
<?php class myclass { public function __construct() { echo "Inside the constructor of ". __CLASS__ . PHP_EOL; } function getClassName(){ echo "from an instance method of " . __CLASS__ . ""; } } $obj = new myclass; $obj->getClassName(); ?>
它將產生以下輸出:
Inside the constructor of myclass from an instance method of myclass
__METHOD__
__METHOD__ 常量返回類方法名。下面的示例顯示了它的工作方式:
<?php class myclass { public function __construct() { echo "Calling " . __METHOD__ . " of " . __CLASS__ ."<br>"; } function mymethod(){ echo "Calling " . __METHOD__ . " of " . __CLASS__ .""; } } $obj = new myclass; $obj->mymethod(); ?>
它將產生以下輸出:
Calling myclass::__construct of myclass Calling myclass::mymethod of myclass
__TRAIT__
它返回特性名稱。特性名稱包括其宣告所在的名稱空間。在 PHP 中,特性是一種程式碼重用機制。特性類似於類,但僅用於以細粒度和一致的方式分組功能。不可能單獨例項化特性。
檢視以下示例:
<?php trait mytrait { public function hello() { echo "Hello World from " . __TRAIT__ .""; } } class myclass { use mytrait; } $obj = new myclass(); $obj->hello(); ?>
它將產生以下輸出:
Hello World from mytrait
__NAMESPACE__
此常量返回當前名稱空間的名稱。在 PHP 中,名稱空間允許我們在不同的上下文中使用相同名稱的類/函式/常量,而不會發生任何衝突,從而封裝這些項。名稱空間是根據類/函式的相關性對它們進行邏輯分組。
下面的示例顯示瞭如何使用此魔術常量:
<?php namespace myspace; class myclass { public function __construct() { echo "Name of the class: " . __CLASS__ . " in " . __NAMESPACE__ . ""; } } $class_name = __NAMESPACE__ . '\myclass'; $a = new $class_name; ?>
它將產生以下輸出:
Name of the class: myspace\myclass in myspace
ClassName::class
與其他魔術常量不同,此魔術常量不以雙下劃線 (__ )開頭和結尾。它返回完全限定的類名。
下面的示例顯示瞭如何使用此魔術常量:
<?php namespace myspace; class myclass { public function __construct() { echo "Name of the class: " . myclass::class ; } } use myspace; $a = new myclass; ?>
它將產生以下輸出:
Name of the class: myspace\myclass