變數、常數

變數之概述及規則
    在php中的變數與大多數的的程式語言變數一樣,是某些資料的容器,只是他不需要事先宣告; 所以,您可以自行命名變數名稱,並以「$」來識別,也就是在變數名稱前方加上「$
」符號,再將資料指定給變數,提供程式後續的引用其內存的資料。
 
但在使用變數之前,須先注意幾件事:
    1. 變數名稱有大小寫之分,所以 $abc 與 $ABC ,甚至是 $Abc 都各自表是表示不同的變數。
    2. 變數名稱的「開頭字母」必須是英文字母「a-z或A-Z」或底線「 _ 」,不可用其他字元,如數字。
    3. 變數名稱必須由英文字母、數字及底線組成,中間不可空白。
    4. 不可使用關鍵字及識別字。

使用方式與範例

變數的初始化(或稱設值)

說明     就是直接將一個數值(文字或數字)直接設定給變數,然而PHP不一定要事先宣告,如果給予字串數值,該變數就是字串變數,給予數字,就是數字變數,可做為數字運算用,所以有人稱PHP的變數型態是一種「鬆散」的變數型態
 
範例 變數設值 顯示結果
<?php
$a = "這是測試程式!<BR>";
echo $a;
$a = "12345";
echo ($a * 10);
?>

變數的變數(或稱參照)

說明     變數的變數就是將變數的「值」當做別一個變數的名稱。
範例 變數參照 顯示結果
<?php
$variable_name = "variable";
echo "$variable_name <BR>";
$$variable_name = "12345";   //相當於$variable = "12345";
echo $variable;
?>
附註     除了寫成 $$a 外,也可寫成 ${$a} (用大括號包起來),其意義是相同的。但請注意,其運用規則也須遵照變數名稱的命名規則。

變數傳址

說明     除了前面介紹的變數設值外,PHP提供了另一種變數指派方式,那就是「傳址」指派,其意義是讓新變數去參照指派的位址,也就是讓不同的變數對應相同的記憶體位址,如此一來只要著個位址所存的值改變,所有對應至同一位址的變數所存的值也會跟著改變,這種方式由於沒有實際執行指派值複製的工作,在執行速度上會大大提升,至於方法則只需在原變數前加上「&」符號。
 
範例 變數傳址 顯示結果
<?php
$A=1; $B=2; $C=3;
$B=$A; //$A的值複製給$B
$C=&$A; //$A的記憶體位置讓給$C
$C=100;
echo "A=$A <br> B=$B <br> C=$C <br>";
?>

全域變數與區域變數

說明     顧名思義區域變數就是只能在其設值的php標籤範圍內或函式中使用,至於全域變數就可以在不同的區域內使用,也就是適用於整個程式範圍,以關鍵字 global 宣告,或是使用
global 變數陣列 $GLOBALS[ ]。
範例 全域與區域變數 顯示結果
<?php
function test()
{
$A=1; //區域變數
global $B; //指定$B為全域變數
$B=2;
echo "A=$A <br> B=$B <br><hr>";
}
?>
<?php
$A=10; $B=20; //區域變數
echo "A=$A <br> B=$B <br><hr>";
test();
echo "A=$A <br> B=$B <br>";
?>
附註     範例4的$A的效果並不會在瀏覽器顯現,必須檢視原始檔才看得出來,也就是作用在原始檔上,而$D、$E所使用的( . )稱作String Operator,主要是用來連接PHP或html語法,值得注意的是當連結字串或html語法時,必須用雙引號或單引號框起來再做連結,詳細使用方法可至PHP官網查詢,另外,在雙引號中使用單引號或在單引號中使用雙引號都不需使用跳脫字元,可以自己試試看喔~
 

常數使用說明及範例

說明     常數也是存放資料的變數,只不過是給予資料之後,就不可改變資料內容,所以常數是以另一種方式來定義。在PHP中,常數是用 define( )函數來建立。常數的名稱一樣有大小之別(傳統上用大寫),但是前頭不必加上「$」字元,因此,若將常數置於字串裡頭的話,將不會被系統所辨識出來。
 
範例 使用define( )設定常數 顯示結果
<?php
define ("PI", "3.1415926"); // 設定π的值
echo PI."<br>";

//也可運用 defined ( ) 來識別變數是否被定義為常數
if ( defined ("PI") ) { echo "PI 已被設定"; }
else { echo "未設定"; }
//defined ("PI")回傳True或False
?>