« 14. 什麼是靜態變數? | (回到Blog入口) | 16. 何謂「變數的變數陣列」? »

15. 何謂「以變數為名的變數何謂」?

jollen 發表於 October 27, 2006 2:01 PM

所謂「以變數為名的變數」 (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

版權聲明

請參閱頁面底部的 CC 授權條款。此外,Jollen's PHP 專欄禁止引用、修改與轉貼,如果您想與朋友分享的話,我們只允許網站連結(hyperlink)的形式。

評論 (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>";
?>

發表一個評論

(如果你此前從未在此 Blog 上發表過評論,則你的評論必須在 Blog 主人驗證後才能顯示,請你耐心等候。)

| Top | Jollen's Forum |
Jollen's PHP 專欄採用 Attribution-NonCommercial-NoDerivs 2.5 授權條款
Copyright(c) 2001-2007,2010 www.jollen.org