變數是指在程式的執行過程中隨時可以發生變化的量,在**中可以只使用乙個變數,也可以使用多個變數,變數中可以存放單詞、數值、日期以及屬性等。變數的值是臨時的,當程式執行的時候,該值是存在的,如果程式結束,變數的值就會丟失。雖然在前面的示例中也使用到了變數,但是沒有詳細的說明,本節將詳細介紹如何建立變數,以及如何引用變數。
2.4.1 建立變數
php中的變數是用美元符號($)作為字首的標示符,識別符號是乙個標識不同物件的符號,如變數的名稱,函式的名稱,或者其他使用者自定義物件的名稱。在php中,識別符號的命名必須符合下面的規定:
l 識別符號可以由乙個或多個字元組成,但必須以字母或下劃線開頭。此外,識別符號只能由字母、數字、下劃線字元和從127到255的其他ascii字元組成。如my_a、ss、_value這些識別符號名稱都是合法的,而q^a、4tt這些變數的名稱是不合法的。
l 識別符號區分大小寫。因此,變數$recipe不同於變數$recipe、$recipe或$recipe。
l 識別符號可以是任意長度。這很有好處,因為這樣一來,程式設計師就能通過識別符號名準確地描述識別符號的用途。
l 識別符號名稱不能與任何php預定義關鍵字相同。
在建立變數的過程中,先宣告變數,再給變數賦值是乙個好的習慣。由於php是一種弱型別語言,在宣告變數時,不需要顯示宣告變數,變數可以存放任何型別的值,在php中,變數在執行時進行型別檢查,並且可以用另乙個不同型別的值取代變數的值,下面宣告乙個變數,並且讓另乙個不同型別的值取代變數的值,再為宣告乙個沒有賦值的變數,具體**如下所示:
$what = 「yound tang」;
$what = 25;
$name;
在php中,給變數賦值有兩種方式,分別為值賦值和引用賦值。值賦值是直接把乙個數值通過賦值表示式複製給變數,會把該變數原來的數值覆蓋,如果在宣告變數時,沒有賦值,其行為就形同null。在宣告變數時賦值是一種常用的變數的賦值方法,使用示例如下所示:
$name = 「唐曉陽」;
$age = 「23」;
$*** = 「男」;
echo 「你的姓名是:」.$name.」」;
echo 「你的年齡是:」.$age.」」;
echo 「你的性別是:」.$***.」」;
執行該段**,執行結果如下所示:
你的姓名是:唐曉陽
你的年齡是:23
你的性別是:男
在php中,宣告變數可以直接賦值,也可以不賦值,當需要使用變數儲存值時,可以引用變數賦值,引用賦值表示所建立的變數與另乙個變數引用的內容相同。因此,如果多個變數引用了同乙個內容,修改其中任意乙個變數,在其餘的變數上都將有所反映。在等於號後面加乙個&符號就可以完成引用賦值。引用賦值的示例形式如下所示。
$value1="hello world";
$value2=& $value1;
$value2="goodbye";
echo $value1.」
」;echo $value2.」」;
在上述**中,建立乙個變數value1並賦值為「hello world」,在下面的語句中,變數$value2採用了引用賦值,即把value1的值賦給了value2,此時這兩個變數就是乙個生命共同體了,當乙個發生變化,另外乙個就會顯示出結果,該段**執行結果如下所示:
goodbye
goodbye
2.4.2 變數作用域
宣告變數的位置決定了變數的作用域,變數的作用域決定了程式的那些部分可以訪問該變數,那些部分不可以訪問該變數,在php中,變數的作用域範圍可以分為四類:區域性變數、函式引數、全域性變數和靜態變數,本節主要介紹變數的這幾種作用域範圍。
1.區域性變數
在乙個函式中宣告乙個變數是那個函式的區域性變數,也就是說該變數只能被函式內部成員訪問,函式外部成員是不能訪問該變數,並且不可見。預設情況下,函式內部成員不能訪問函式外定義的變數(平常所說的的全域性變數)。有時區域性變數很有用,因為區域性變數能夠消除出現一位***的可能性,否則這些***將導致可全域性訪問的變數被有意或無意地修改。下面建立乙個使用區域性變數的示例,該示例如**2.13所示。
**2.13 使用區域性變數
<?php
$count =10;
function addcount()
addcount();
echo $count;
?>
執行**2.13,執行結果如下所示:
20010
有輸出結果知,該段**輸出了兩個不同的值,這是因為函式addcount函式中的變數為區域性變數,修改區域性變數的值不會影響函式外部的任何值,函式中的變數在程式結束時被拋棄,所以全域性變數值還是10。
2.函式引數
在php中,函式可以接受相應的引數,雖然這些引數是接受函式外部的值,但退出函式後就無法訪問這些引數,在函式執行結束後,引數的值就會消失,和函式的執行有很大的關係。函式引數是在函式後面的括號內宣告,下面使用該引數建立乙個示例,該示例如**2.14所示。
**2.14 運用函式引數
<?php
function echonum($age,$class)
echonum(18,"計算機技術與科學系08級5班");
?>
執行該段**,執行結果如下所示:
你的年齡是:18
所在班級:計算機技術與科學系08級5班
函式引數也可以稱為是區域性變數,意味著這些引數只在函式內部起作用,在函式的外部不能訪問這些變數,同樣當函式執行結束時,變數同樣也會撤銷。
3.全域性變數
全域性變數可以在整個php程式中,任何地方訪問,但是如果要修改乙個全域性變數,必須在修改該變數的函式中顯式的宣告為全域性變數,在函式中顯示宣告全域性變數很簡單,只需在函式中使用global關鍵字宣告就可以,下面建立乙個使用全域性變數的示例,具體講解在函式中如何修改全域性變數,該示例如**2.15所示。
**2.15 在函式中修改全域性變數
<?php
function addnum()
$num = 100;
addnum();
?>
執行**2.15,執行結果如下所示:
200如果不在$num前加global,該變數會被認為是區域性變數,此時頁面上顯示的值為0;新增global後,就可以修改全域性變數了,宣告全域性變數還有另外一種方法,那就是使用php的$globals陣列,使用該陣列和使用global的效果一樣,下面建立乙個使用$globals陣列的示例,該示例如**2.16所示。
**2.16 使用$globals陣列
<?php
function addnum()
$num = 100;
addnum();
?>
執行**2.16,執行結果如下所示:
該值是:200
在使用全域性變數時,一定要注意,因為使用全域性變數很容易發生意外。
4.靜態變數
靜態變數在兩次呼叫函式之間其值不變,靜態變數僅在區域性函式域中宣告,用關鍵字static可以宣告乙個靜態變數。靜態變數在函式退出時,不會丟失值,並且再次呼叫此函式時,還能保留值。下面建立乙個使用靜態變數的示例,該示例如**2.17所示。
**2.17 使用靜態變數
<?php
function keepnum()
$num = 10;
echo "變數num的值是:".$num."
";keepnum();
keepnum();
?>
執行**2.17,執行結果如下所示:
變數num的值是:10
現在靜態變數的值是:1
現在靜態變數的值是:2
由**2.17執行結果知,由於在函式中指明了變數為靜態變數,因此在執行函式時保留了前面的值。
2.3.3 變數的變數
建立乙個變數,需要該變數賦值,當然也可以引用賦值,有時候也需要使用該變數的內容作為變數名,也就是說這個變數存放在另乙個變數中。定義變數的變數只需要在變數的前面再新增乙個美元符號即可。下面建立乙個示例,該示例**如下所示:
<?php
$name = "yound";
$$name = " tang";
echo $name.$$name;
?>
執行該端**,執行結果如下所示:
yound tang
由上面例子知,乙個可變變數獲取了乙個普通變數的值作為這個可變變數的變數名。就可以作為乙個可變變數的變數了,這時,兩個變數都被定義了。
php宣告變數開頭,php變數宣告
1 什麼是變數?變數就是可變的量,我們可以把它看做是?個容器之所以叫做變數。是因為一旦被宣告後在整個指令碼中都會可以動態的改變變數的值。2 變數的命名規範 1 以 開頭 2 由字母數字下劃線組成,但是不能以數字開頭 3 可以使用中文,但是不推薦使yongoing 4 變數名嚴格區分大小寫 5 變數名...
一 PHP語言基礎 PHP變數 宣告變數和作用域
變數是指在程式執行過程中其值可以變化的量.它實質上是計算機記憶體單元的命名,因此借助變數名就可以訪問記憶體中的資料.php中的變數名稱用 和識別符號表示,並遵循以下約定 1 在php中的變數名是區分大小寫的.2 變數名必須是以美元符號 開始 3 變數名開頭可以以下劃細或字母開始 4 這是名可以包含一...
PHP變數的宣告和使用
php中的變數名稱用 和識別符號表示,變數名是區分大小寫的。變數賦值,是指給變數乙個具體的資料值,對於字串和數字型別的變數,可以通過 來實現,格式為 name value php中變數名不能以數字和其他字元開頭,其他字元包括 等 引用賦值 從php4開始,php引入了 引用賦值 的概念。用不同的名字...