移至主內容

PHP的變數與常數

PHP的變數與常數

Written by Wanding on 31 July 2021

變數

變數是用來暫存資料的工具,使用時會在變數名稱前面加上$符號,通常引用的變數還沒設定數值前為空值,若要設定數值則可以用 "=" 符號來設定。

PHP是一個非強制檢查型別的程式語言(weakly typed language),所以變數在引用時並不需要事先宣告資料型態才能使用。資料型態會自動依變數的內容來決定,這是與其他高階語言不同之處。

變數設定與設定方法:

<?php
      $name;             //宣告變數name,值為空值
      $number=17;        //宣告變數number,值設定為17
?>

 

變數的名稱命名,有些規範需要注意:

  1. 變數名稱的字首必須是英文大小寫字母(A~Z 或 a~z) 或是底線( _ )
  2. 變數名稱第二個字元後可以是(1)英文大小寫字母 (2)數字0~9 (3)底線
  3. 變數名稱長度沒有限制
  4. 無法使用PHP程式語言保留字

 

變數宣告和設定數值的同時,我們必須了解該變數的範圍。所謂的變數範圍,即是該變數在整個程式中能夠被使用或看到的範圍,通常可以分為下面4種變數:

 

1. 區域變數

區域變數即是在特定區域範圍內才能使用的變數,不能在其他的函式中被使用。此外,在函式中的變數若是區域變數,也不能在其他區域中使用。下列例子說明:函數外的變數$number1和函數中的變數$number2,都是區域變數,它們只能在自己所屬的區域內使用,跨到別的區域就無法使用。

例子如下

<?php
    $number1= 20;
    function local()                           //自訂local函數
    {
        $number2= 30;
        echo "函數中\$number1 = $number1";     //印出變數則出現錯誤
        echo "<br>";
        echo "函數中\$number2 = $number2";
        echo "<br>";
    }
    local();                                   //呼叫local函數

    echo "函數外\$number1 = $number1";
    echo "<br>";
    echo "函數外\$number2 = $number2";          //印出變數則出現錯誤
?> 

執行結果:

函數中$number1=
函數中$number2=30
函數外$number1=20
函數外$number2=

 

2. 全域變數

全域變數即是在任何函數範圍內皆可使用該變數。在PHP中並非像其他程式語言一樣是在變數宣告時宣告該變數為全域變數,反而是在函數中利用全域的指令來引用在該函數外的變數。全域變數的使用方法如下:

  1. 在該函數中將會使用到的函式外的變數宣告為global。
  2. 利用GLOBAL陣列。

例子說明1 (宣告為global)

<?php
    $number = 20;
    function local()                          //自訂local函數
    {
        global $number;                       //使用global
        echo "函數中\$number = $number";
        echo "<br>";
    }
    local();                                  //呼叫local函數
    echo "函數外\$number = $number";
?>

執行結果:

函數中$number=20
函數外$number=20

 

例子說明2 (GLOBALS陣列)

<?php
    $GLOBALS['a'] = 20;                         //使用GLOBALS陣列
    function local()                            //自訂local函數
    {
        echo "函數中\$number =". $GLOBALS['a'];
        echo "<br>";
    }
    local();                                    //呼叫local函數
    echo "函數外\$number =".$GLOBALS['a'];
?>

執行結果:

函數中$number=20
函數外$number=20

 

3. 靜態變數

靜態變數即是變數的值,不會因為離開函數而消失,靜態變數會保留最後使用或修改的資料。我們可以使用保留字static來將變數宣告為靜態變數。

例子說明

<?php
    function local()                            //自訂local函數
    {
        static $number = 0;                     //使用static
        $number = $number+1;                                  
        echo "函數中\$number = $number";
        echo "<br>"
    }
    local();                                    //呼叫local函數
    local();
    local();
?>

執行結果:

函數中$number=1
函數中$number=2
函數中$number=3

 

4. 動態變數

動態變數即是一種變數參照,透過某一種變數名稱來當作另一個變數的參照,使用上會用兩個錢字符號$$來使用動態變數。

例子說明

<?php
    $M = "Mcdonalds";                            //宣告M 變數
    $KFC = "Kentucky Fried Chicken";
    $store = "M"                                 //宣告store的內容為變數M 的名稱
    echo $$store;                                //使用動態變數
    echo "<br>";
    $store = "KFC";
    echo $$store;  
?>

執行結果

Mcdonalds
Kentucky Fried Chicken

 

5. 預設變數

預設變數就是與伺服器或使用者環境相關的系統變數

預設變數 說明
$_SERVER 儲存伺服器內或使用者環境的資訊陣列變數
$_POST 儲存以POST方式傳入的陣列變數
$_GET 儲存以GET方式傳入的陣列變數
$_COOKIE 儲存以COOKIE方式註冊的陣列變數
$_SESSION 儲存以SESSION方式註冊的陣列變數
$_FILES 儲存以POST方式傳入檔案的陣列變數
$_REQUEST 儲存以POST、GET、COOKIE、FILES方式傳入的陣列變數

 

 

常數

常數與變數剛好相反,它是定義一些無法改變數值內容。常數可以分為兩種,一種是內建常數,另一種是自訂常數。

內建常數即是系統內已定義的常數工具,主要是提供給程式開發者使用,通常名稱皆為大寫,以下是常見的內建常數:

內建常數 說明
PHP_VERSION PHP版本
PHP_OS 執行PHP的系統
TRUE 真值
FALSE 假值
E_ERROR 指到最近的錯誤,並中斷程式產生報告,值為1
E_WARNING 指到最近的警告,不會中斷程式,值為2
E_PARSE 分析語法錯誤之處,值為4
E_NOTICE 用於不尋常但不一定是錯誤之處,值為8

除了系統內建常數外,我們也可以自定常用的常數,像是定義圓周率等於3.1415,或者是一天小時數等於24...等方式,定義的方法可以透過下列格式來做定義:

define(常數名稱, 常數值);

例子說明

<?php
    define("PI",3.1415);                //定義圓周率
    echo $round_area = 3 * 3 * PI;      //計算圓面積
?>

執行結果

28.2735

回目錄