熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

PHP的可變變量名

2013-11-15 12:26:15  來源: PHP編程 

  有時候可變的變量名會給編程帶來很大的方便也就是說變量名可以被動態的命名和使用通常變量通過下面這樣的語句來命名

  

  1. <?php 
  2. $a = hello
  3. ?> 

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

  

  1. <?php 
  2. $$a = world
  3. ?> 

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

  

  1. <?php 
  2. echo "$a ${$a}"; 
  3. ?> 

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

  

  1. <?php 
  2. echo "$a $hello"; 
  3. ?> 

  它們都輸出hello world

  為 了使用數組的可變變量名你需要解決一個歧義問題就是如果你寫$$a[]解析器需要明白究竟你的意思是要把$a[]當成一個變量還是要 把$$a當成變量[]指的是這個變量的索引解決這個歧義問題的語法是第一種情況使用${$a[]}第二種情況使用${$a}[]

  類 屬性也可以通過可變屬性名來訪問可變屬性名從產生調用所在的變量的訪問范圍內獲取例如如果你的表達式是這樣的$foo>$bar那麼運 行時將會在本地變量范圍內尋找變量$bar它的值將會做為$foo對象的一個屬性名如果$bar是個數組也可以使用

  例 可變變量名

  

  1. <?php 
  2. class foo { 
  3.     var $bar = I am bar
  4.  
  5. $foo = new foo(); 
  6. $bar = bar
  7. $baz = array(foo bar baz quux); 
  8. echo $foo>$bar  "n"; 
  9. echo $foo>$baz[ "n"; 
  10. ?> 

  上面的例子將會輸出下面的結果

  I am bar

  I am bar

  警告

  請注意可變變量名不能用於PHP函數和類裡的超級全局數組變量上變量$this也是一個不能動態取名的特殊變量


From:http://tw.wingwit.com/Article/program/PHP/201311/20947.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.