當前位置:才華齋>計算機>php語言>

PHP的可變變數的應用

php語言 閱讀(5.43K)
  導語:有時候可變的變數名會給程式設計帶來很大的方便。也就是說變數名可以被動態的命名和使用。下面的是本站小編為大家蒐集的PHP的可變變數的應用,供大家參考。

  通常變數通過下面這樣的語句來命名 :

PHP的可變變數的應用

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

可變變數名指的是使用一個變數的值作為這個變數的名稱。在上面的例子中,通過使用兩個$符號,你可以把hello設定成一個變數的名稱,就像下面那樣。

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

通過上面的'兩個語句,有兩個變數被定義:變數$a,裝的內容是”hello” 以及變數$hello,裝的內容是 “world”。 於是,下面的語言:

<?phpecho "$a ${$a}";?>

跟下面的語句的輸出完全一致:

<?phpecho "$a $hello";?>

它們都輸出:hello world。為了使用陣列的可變變數名,你需要解決一個歧義問題。就是,如果你寫$$a[1],解析器需要明白究竟你的意思是要把$a[1]當成一個變數,還是要把$$a當成變數、[1]指的是這個變數的索引。

解決這個歧義問題的語法是:

第一種情況使用${$a[1]},第二種情況使用${$a}[1]。

類屬性也可以通過可變屬性名來訪問。可變屬性名從產生呼叫所在的變數的訪問範圍內獲取。例如,如果你的表示式是這樣的:$foo->$bar,那麼執行時將會在本地變數範圍內尋找變數$bar,它的值將會做為$foo物件的一個屬性名。如果$bar是個陣列也可以使用。

例1 可變變數名$bar . "n";echo $foo->$baz[1] . "n";?>上面的例子將會輸出下面的結果:I am bar.I am bar.

警告請注意,可變變數名不能用於PHP函式和類裡的超級全域性陣列變數上。變數$this也是一個不能動態取名的特殊變數。