變數是儲存資料的「容器」。本文涵蓋命名規則、建立方式、弱型別機制、區域/全域/靜態/參數四大作用域,並附完整程式碼範例。
類似代數中的 x=5, y=6, z=x+y,PHP 變數以 $ 符號開頭,後接名稱。命名規則:
$y 與 $Y 為不同變數)
PHP 無需額外宣告指令,首次指派值時即自動建立:
<?php
$txt = "Hello world!";
$x = 5;
$y = 10.5;
?>
注意:指派文字值時,兩側需加引號。
不需預先宣告資料類型,PHP 會依指派的值自動轉換為正確型別。這與強型別語言(需先宣告型別)截然不同。
函式外部定義的變數為全域;函式內部定義的為區域,僅在函式內可存取。若要在函式內使用全域變數,需加 global 關鍵字。
<?php
$x = 5; // 全域變數
function myTest() {
$y = 10; // 區域變數
echo "<p>測試函數內變量:</p>";
echo "變數 x 為: $x";
echo "<br>";
echo "變數 y 為: $y";
}
myTest();
echo "<p>測試函數外變量:</p>";
echo "變數 x 為: $x";
echo "<br>";
echo "變數 y 為: $y";
?>

提示:不同函式可使用相同變數名稱,因為各自為區域變數,互不干擾。
在函式內存取全域變數時,於變數前加 global:
<?php
$x = 5;
$y = 10;
function myTest() {
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // 輸出 15
?>
PHP 也將所有全域變數儲存在 $GLOBALS[index] 陣列中,可直接透過此陣列存取或更新。
函式結束時,區域變數通常會被銷毀。使用 static 關鍵字可保留變數值供下次呼叫使用:
<?php
function myTest() {
static $x = 0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
輸出:0 1 2。注意:該變數仍屬區域變數。
參數是透過呼叫程式碼傳遞給函式的區域變數,在函式宣告的參數列表中定義:
<?php
function myTest($x) {
echo $x;
}
myTest(5);
?>