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

伊谢尔伦
發布: 2023-03-10 22:30:01
原創
2221 人瀏覽過

可變變數

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

<?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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!