PHP 快速導覽 - 可變變數

有時候需要動態的設定變數 (variable) ,這是說可以將變數的字串 (string) 內容當成動態的變數名稱,例如以下變數 $a

$a = 'hello';


若是用兩個金錢符號重新設定 $$a
$$a = 'world';


此時會產生一個新變數 $hello ,因此
echo "$a $hello";


就會印出 hello world 。注意,以上也等於
echo "$a ${$a}";


字串中的大括弧是必要的,如果少了大括弧的話, $$a 就會被當成 $a


我們舉一個完整例子如下
<?php
$today = 'Sunday';
$$today = 'day 0';
echo "$today ${$today}";
echo "\n";
echo "$today $Sunday";

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:vv01.php
    功能:示範 PHP 程式 
    作者:張凱慶
    時間:西元 2013 年 2 月 */
?>


執行結果如下



這裡可以看出 ${$today}$Sunday 會得到一樣的結果。


利用可變變數 (variable variable) 也能簡化程式的寫法,例如
<?php
$Sunday = 'day 0';
$Monday = 'day 1';
$Tuesday = 'day 2';
$Wednesday = 'day 3';
$Thursday = 'day 4';
$Friday = 'day 5';
$Saturday = 'day 6';

$today = date("l");
echo "Today is {$$today}.";

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:vv02.php
    功能:示範 PHP 程式 
    作者:張凱慶
    時間:西元 2013 年 2 月 */
?>


這裡設定了以 $Sunday$Monday 為名的變數,設定相關的字串,然後用內建函數 date() 並以 "l" 當參數取得今天是 SundaySaturday 的哪一天,然後印出指定的字串
$today = date("l");
echo "Today is {$$today}.";


執行結果如下



中英文術語對照
變數variable
字串string
可變變數variable variable


您可以繼續參考
資料型態與參考


相關目錄
回 PHP 快速導覽
回 PHP 教材
回首頁


參考資料
http://www.php.net/manual/en/language.variables.variable.php

沒有留言: