引用變數是指用不同的變數名去訪問同乙個變數內容,即兩個不同的變數指向同乙個內容。引用變數通過符號「&」進行定義。例如:
$var1=&
$var2
;
將變數$var1
和變數$var2
指向同乙個內容。引用後,變數$var1
和$var2
完全相同。
引用變數不同於一般的變數賦值。當用乙個變數向另乙個變數賦值時,例如:
$var1
=$var2
;
這種賦值是將變數$var2
的值複製給$var1
,兩個變數只在這條語句存在聯絡。賦值完成後,兩個變數之間不再存在聯絡,$var1
的變化不會影響$var2
,同樣$var2
的變化也不會影響$var1
。
而引用變數並不是複製乙個值的變數給另乙個變數,而是將兩個變數指向同一內容,可以理解為將乙個變數的位址傳遞給另乙個變數。引用後,兩個變數完全相同。完全相同是指兩個變數是完全等價的,可以通過其中任乙個變數訪問、修改所指向的這個內容。對其所指向的同一內容的修改也會反映在兩個變數值上。
可變變數是指變數的名稱並不是預先預定好的,而是動態地設定和使用。一般是指使用乙個變數的值作為另乙個變數的名稱,所以可變變數又稱變數的變數。
可變變數通過在乙個變數名稱前使用兩個"$"符號實現,如下所示:
<?php
$str
="name"
;$name
="john"
;$out_str
=$$str
;//相當於$out = $name
$out_str=$
;//功能與上一條語句相同,形式上更直觀
?>
可變變數可以用在流程控制結構中,根據流程的不同狀態設定不同的變數名。如下在for迴圈中動態設定變數名:
<?php
$var_name
="str"'
$str1
="the first string"
;$str2
="the second string"
;$str3
="the third string"
;for($i
=0;$i
<3;
$i++);
}?>
靜態變數在函式內部定義,只侷限於函式內部使用,但卻具有和程式檔案相同的生命週期,即靜態變數一旦被定義,則在當期程式檔案結束之前一直存在。
static
$var_name
;
使用靜態變數示例:
<?php
/** * created by phpstorm.
* user: wei19
* date: 2019/2/26
* time: 11:25
*///使用靜態變數
function
func1()
function
func2()
//將哪兩個函式分別執行20次
for($i=
0;$i<10;
$i++
)echo""
;for($i
=0;$i
<10;
$i++
)echo""
;for($i
=0;$i
<10;
$i++
)echo""
;for($i
=0;$i
<10;
$i++
)//輸出結果為:
//0000000000
//0123456789
//0000000000
//10111213141516171819
在上述**中,函式func1()
中定義了乙個區域性變數$num
,每次在執行func1()
時,變數$num
被賦初值0,然後使用echo
輸出。雖然在函式最後將$num
加1,但是,每次func1()
執行結束後,該變數便不存在了,所以將func1()
連續執行10次得到的結果是連續輸出10個『0』。第二次連續執行10次仍然得到10個『0』。 PHP可變變數
php可變變數 1 含義 兩個 是 可變變數,就是乙個變數的變數名可以動態的設定和使用。a hello hello world echo a hello world 必需加花括號 如果不加則是會輸出變數名 echo a hello hello world2 注意 要將可變變數用於陣列,必須解決乙個模...
PHP學習筆記9 可變變數
可變變數理解起來其實非常簡單,舉例說明 現在有乙個變數 a,它的值是字串 hello 如果在這個變數前面加入乙個美元符號,變成了 a,則這個變數名等價於 hello 也就是說,第二個變數,把,第乙個變數的值,直接拿來做變數名,有了2種寫法。這兩種寫法是等價的。以下面的例子來說明 a hello 第1...
for迴圈 php可變變數
還是前幾天的工作中,碰到了一堆重複的 重複了八次,但是 中的sql查詢條件中的變數不同 a1 a2 a3 a8 八個變數名。寫八個重複的 很簡單 很粗暴 很直觀,就是太low b,為了降低 行數,我就想用for迴圈,來執行八次這些 由於 過長 過於繁雜,就不貼出來丟人現眼了 在此寫個小栗子和大家分享...