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

PHP 變數與常數完整指南:從基礎語法到魔術常數應用

     編輯:PHP 相關知識

PHP 變數與常數核心概念解析

在 PHP 開發中,變數與常數是構建程式邏輯的基石。本文將系統性介紹變數宣告、作用域、引用機制,以及常數定義與魔術常數的實戰應用,幫助初學者建立扎實的基礎觀念。

變數基礎語法與命名規則

PHP 變數以 $ 符號開頭,區分大小寫。正確的宣告方式為 $var_name = value;。初學者常犯的錯誤是漏寫 $ 符號,導致變數無效。

<?php
$txt = "Hello World!";
$number = 16;
?>

變數大小寫敏感與引用賦值

PHP 變數名稱區分大小寫,$var 與 $VAR 是兩個不同變數。自 PHP 4 起引入引用賦值機制,使用 & 符號實現,類似 C/C++ 的指標概念:

<?php
$foo = 'Bob';
$bar = &$foo;  // 透過引用指向同一記憶體位址
$bar = "My name is $bar";
echo $bar;  // 輸出: My name is Bob
echo $foo;  // $foo 也被修改了
?>

變數變數與字串串接

變數變數(Variable Variables)允許動態建立變數名稱:

<?php
$a = "b";
$$a = "123";  // 相當於 $b = "123"
echo $b;  // 輸出: 123
?>

字串串接使用點號 . 運算子:

<?php
$a = "PHP 4";
$b = "功能強大";
echo $a . $b;  // 輸出: PHP 4功能強大
?>

超全域變數完整對照表

超全域變數在所有作用域皆可存取,無需 global 宣告:

變數說明
$GLOBALS包含所有全域變數的陣列,鍵名為變數名稱
$_SERVER伺服器與執行環境資訊
$_GETURL 參數(查詢字串)
$_POSTPOST 表單提交資料
$_COOKIECookie 資料
$_FILES檔案上傳資訊
$_ENV環境變數
$_REQUESTGET、POST、COOKIE 合併(不建議直接使用)
$_SESSIONSession 變數

注意: PHP 4.2.0 起 register_globals 預設關閉,需使用超全域陣列存取外部輸入資料。

常數定義與命名規範

常數一經定義不可變更(魔術常數除外),慣例使用全大寫命名。使用 define() 函數定義:

<?php
// 合法常數名
define("FOO", "something");
define("FOO2", "something else");
define("FOO_BAR", "something more");

// 非法:不能以數字開頭
// define("2FOO", "something");

// 避免使用雙底線開頭,防止與未來魔術常數衝突
// define("__FOO__", "something");
?>

define() 語法:bool define(string $name, mixed $value, bool $case_insensitive = false)。第三個參數設為 true 可不區分大小寫。

魔術常數完整參考

魔術常數會根據使用位置動態變化,並非真正的常數:

常數說明
__LINE__檔案中的目前行號
__FILE__檔案完整路徑與檔名(PHP 4.0.2+ 為絕對路徑)
__DIR__檔案所在目錄(等同 dirname(__FILE__),PHP 5.3.0+)
__FUNCTION__函數名稱(PHP 5+ 區分大小寫)
__CLASS__類別名稱(PHP 5+ 區分大小寫)
__METHOD__類別方法名稱(PHP 5.0.0+)
__NAMESPACE__目前命名空間名稱(PHP 5.3.0+)

善用魔術常數可簡化除錯與日誌記錄,例如 __FILE__ . ':' . __LINE__ 可快速定位程式碼位置。

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