• PHP
  • 常用語法介紹
  • 變數與陣列
  • import_contacts 變數 Variables
    5996
適用範圍

PHP程式設計基礎,本篇主要比較區域變數、全域變數、靜態變數、參數的差異

實用性:
重要性:

PHP 的變數不需特別宣告其型別,會自動透過變數的值來判斷型別

PHP 設定變數的方式很簡單,由錢字號($)開始,後面接著變數名稱,名稱有大小寫之分。
名稱可以是英文、數字、底線和十六進位制為0x7f-0xff的字元所組成,但是「第一個字元」不能是數字。
用等於符號(=)來設定變數的值,若設定的值為字串時,則必需使用單引號(')或雙引號(")包起來,字串間若要連接其它的字串或變數,則使用點符號(.)來連接。

常見的變數用法

$test=123; //設定變數test為數字123
$test=3.14159;  //設定變數test為浮點數3.14159
$test=true;     //設定變數test為布林值
$test="hello world";  //設定變數test為字串 hello world
$test='<a href="xxx.php">連結</a>';   //設定變數test為HTML的超連結內容
$test="<a href=\"xxx.php\">連結</a>";  //設定變數test為HTML的超連結內容,裡面若使用相同的引號需加跳脫字元
$a='click this '.$test;    //設定a變數的結果為字串加上$test變數的內容

區域變數

在function裡使用的變數稱之為區域變數,只會在function裡面有效

function myFun()
{
    $test='hello world';
    echo $test;  //會印出hello world
}

echo $test;  //不會印出任何文字

全域變數

在function裡使用global來定義要調用的全域變數

$test='hello world';

function myFun(){
    global $test;
    echo $test;  //會印出hello world
}

function myFun2(){    
    echo $test;  //不會印出任何文字
}

靜態變數

區域變數在function結束時就會消失, 旦如果不讓它消失可以在第一次使用時加上static來定義它為靜態變數。

function myFun(){
    static $n=0;
    $n++;      //每次呼叫都做+1的動作
    echo $n;   //會印出被呼叫的次數
}

myFun();  //會印出1
myFun();  //會印出2
myFun();  //會印出3…依此類推

參數 parameter

呼叫function時傳入的區域變數。 在編寫function的時候宣告參數

function myFun($n){ 
    echo $n;   //會印出傳入的參數內容
}

myFun(2);  //會印出2
myFun('test');  //會印出test

參數在宣告時可指定預設值

function myFun($n='未給值'){ 
    echo $n;   //會印出傳入的參數內容
}

myFun();  //會印出「未給值」
myFun('test');  //會印出test