所謂「以變數為名的變數」 (variable variables) 指的其實就是「動態變數名稱」 (dynamic variable names),直接來看一個例子讀者就可以了解什麼是 variable variables 了:
<?php $a = "Jollen"; $$a = "Pig!!!"; echo "$Jollen"; // 輸出為 Pig!!! echo "${$a}"; // 輸出為 Pig!!! echo "$a"; // 輸出為 Jollen ?>
說的嚴謹一點,就是利用變數的值來做為其它變數的名稱,像上面這個例子 $$a 指的就是利用 $a 變數的值做為變數的名稱,所以說穿了上面這個宣告就等於是:
$a = "Jollen"; $Jollen = "Pig!!!";
另外,在使用 variable varialbe 時要特別小心,例如在 echo 時:
echo "$a is a ${$a}"; echo "$a is a $Jollen";
輸出結果一樣都是:
Jollen is a Pig!!!
兩者有異曲同工之妙。
--jollen
評論 (1)
<?
// internal API
$a = "foo";
$$a = "foo_x";
function foo_x()
{
echo "your rate: 100%";
return 1;
}
function foo_y()
{
echo "<h1>your rate: 120%</h1>";
return 1.2;
}
// public API
$age = 25;
$pay = 100;
$radio = $foo();
$total = $pay * $radio;
echo "<p>Pay: $total</p>";
?>
由 jollen | April 26, 2007 1:58 PM
發表於 April 26, 2007 13:58