PHP學習筆記(引用變數 可變變數 靜態變數)

2021-09-10 13:57:07 字數 2280 閱讀 6953

引用變數是指用不同的變數名去訪問同乙個變數內容,即兩個不同的變數指向同乙個內容。引用變數通過符號「&」進行定義。例如:

$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迴圈,來執行八次這些 由於 過長 過於繁雜,就不貼出來丟人現眼了 在此寫個小栗子和大家分享...