首頁  >  文章  >  後端開發  >  php中可變變數 "$$" 使用詳解

php中可變變數 "$$" 使用詳解

伊谢尔伦
伊谢尔伦原創
2017-06-21 13:19:552178瀏覽

可變變數

有時候使用可變變數名稱是很方便的。就是說,一個變數的變數名可以動態的設定和使用。一個普通的變數透過宣告來設置,例如:

<?php
$a = "hello";
?>

一個可變變數取得了一個普通變數的值作為這個可變變數的變數名稱。在上面的例子中 hello 使用了兩個美元符號($)以後,就可以作為一個可變變數的變數了。例如:

<?php
$$a = "world";
?>

這時,兩個變數都被定義了:$a 的內容是「hello」且 $hello 的內容是「world」。因此,可以表述為:

<?php
echo "$a ${$a}";
?>

以下寫法更準確並且會輸出相同的結果:

<?php
echo "$a $hello";
?>

它們都會輸出:hello world。

要將可變變數用於陣列,必須解決一個模稜兩可的問題。這就是當寫下$$a[1] 時,解析器需要知道是想要$a[1] 作為一個變數呢,還是想要$$a 作為一個變數並取出該變數中索引為[1] 的值。解決此問題的語法是,對第一種情況用 ${$a[1]},對第二種情況用 ${$a}[1]。

<?php
$a = &#39;hello&#39;;
$$a = &#39;world&#39;;
echo "$a ${$a}";

以上程式碼的第二句,我們是用兩個美元符號的變量,那麼這裡這個變數就是我們可變變數。從第一句開始詳細解釋:

我們第一句,定義了一個a變量,他的值是hello. 第二句我們是:(由於發現美元符號有特殊含義所以我就解釋寫在註解了。 //在這裡我們的$$a就是可變變數;這裡$$a就表示$($a的值),那這是什麼意思呢?這裡我們的$a的值是不是hello?那麼$$a就表示把$a替換成他的值,那就是$hello。那麼意思是說$hello='world';不知道是否理解? //我們的$a是不是hello為值?那麼$$a,其中的$a是不是hello,如果把$a替換成hello那不就是$hello那麼就表示$hello的值等於了world,這樣懂了吧。

echo "$a ${$a}";

必需要加花括號:{}如果不加則是會輸出變數名,大家試試看就懂了,就會不正確,其實以上程式碼和以下這個程式碼是一樣的:

<?php
$a = &#39;hello&#39;;
$$a = &#39;world&#39;;
echo "$a $hello";
?>

以上是php中可變變數 "$$" 使用詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn