程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP的可變變量名

PHP的可變變量名

編輯:關於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[1],解析器需要明白究竟你的意思是要把$a[1]當成一個變量,還是要 把$$a當成變量、[1]指的是這個變量的索引。解決這個歧義問題的語法是:第一種情況使用${$a[1]},第二種情況使用${$a}[1]。

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

    例1 可變變量名

    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[1] . "n"; 
    10. ?> 

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

    I am bar.

    I am bar.

    警告

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

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved