PHP開發基礎教程之變量
變數是用來儲存資訊的"容器":
請見下面的範例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <?php $x=5; $y=6; $z=$x+$y; echo $z; ?> </body> </html>
一、與代數類似
x=5
y=6
z=x+y
-
#在代數中我們使用字母(例如x)來保存值(例如5)。
從上面的表達式 z=x+y,我們能夠計算 z 的值是 11。
在 PHP 中,這三個字母稱為變數。
附註:請把變數視為儲存資料的容器。
二、PHP變數
#如代數,PHP 變數可用來保存值(x=5)和表達式(z =x+y)。
變數的名稱可以很短(例如 x 和 y),也可以取更具描述性的名稱(例如 number、total_volume)。
三、PHP變數規則
#變數以$ 符號開頭,其後是變數的名稱
變數名稱必須以字母或底線開頭
變數名稱不能以數字開頭
變數名稱只能包含字母數字字元和底線(A-z、0-9 以及_)
變數名稱對大小寫敏感($y 與$Y 是兩個不同的變數)
附註:PHP 變數名稱對大小寫敏感!
實例:
<?php //site = 'Hello'; // 非法变量名;以数字开头 $_4site = 'World'; // 合法变量名;以下划线开头 $i小明is = 'haha'; // 合法变量名;可以用中文 ?>
#四、建立PHP變數
PHP 沒有聲明變數的命令。
變數在您第一次賦值給它的時候被創建:
<?php $txt="Hello world!"; $x=5; $y=10.5; ?>
在上面的語句執行中,變數 txt 將保存值 Hello world!,變數 x 將儲存值 5 。
附註:當您賦一個文字值給變數時,請在文字值兩邊加上引號。
五、PHP是一門型別鬆散的語言
#在上面的實例中,我們注意到,不必向PHP聲明該變數的資料型態。
PHP 會根據變數的值,自動把變數轉換成正確的資料型別。
在強型別的程式語言中,我們必須在使用變數前先宣告(定義)變數的型別和名稱。
六、PHP變數作用域(建議初學者暫時了解,不用深究)
變數的作用域是腳本中變數可被引用/使用的部分。
PHP 有四種不同的變數作用域:
local
global
static
parameter
#1.局部與全域作用域
########1.局部與全域作用域######## ##在所有函數外部定義的變量,擁有全域作用域。除了函數外,全域變數可以被腳本中的任何部分訪問,要在一個函數中存取一個全域變量,需要使用 global 關鍵字。 ###在PHP 函數內部宣告的變數是局部變量,僅能在函數內部存取:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <?php $x=5; // 全局变量 function myTest() { $y=10; // 局部变量 echo "<p>测试函数内变量:<p>"; echo "变量 x 为: $x"; echo "<br>"; echo "变量 y 为: $y"; } myTest(); echo "<p>测试函数外变量:<p>"; echo "变量 x 为: $x"; echo "<br>"; echo "变量 y 为: $y"; ?> </body> </html>
2.PHP global關鍵字
global 關鍵字用於函數內存取全域變數。
在函數內呼叫函數外定義的全域變量,我們需要在函數中的變數前加上global 關鍵字:
##
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <?php $x=5; $y=6; function test(){ global $x,$y; $y=$x+$y; } test(); echo $y; ?> </body> </html>註:大家可以把global去掉看看是什麼效果
- PHP 將所有全域變數儲存在一個名為$GLOBALS[index] 的陣列中。 index 保存變數的名稱。這個數組可以在函數內部訪問,也可以直接用來更新全域變數。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <?php $x=5; $y=6; function myTest() { $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y']; } myTest(); myTest(); myTest(); myTest(); echo $y; ?> </body> </html>註:兩個方法實際的效果是一樣的
3 .PHP static關鍵字
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <?php function myTest() { static $x=0; echo $x; $x++; } myTest(); myTest(); myTest(); ?> </body> </html>註:global內的內容也會被銷毀嗎? ? ?
4.參數作用域
參數是透過呼叫程式碼將值傳遞給函數的局部變數。 參數是在參數列表中聲明的,作為函數聲明的一部分:更多詳細介紹請查看PHP 函數章節
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <?php function test($x) { echo $x; } test(2016); ?> </body> </html>
七、可變變數
<?php $x= 'hello'; $$x='xiao ming'; echo "$x ${$x}"; ?>以上程式碼也可以寫成:
<?php $x= 'hello'; $hello='xiao ming'; echo "$x $hello"; ?>這兩個例子是等價的註:可變變數用於數組,必須解決一個模稜兩可的問題。這就是當寫下$$a[1] 時,解析器需要知道是想要$a[1] 作為一個變數呢,還是想要$$a 作為一個變數並取出該變數中索引為[1] 的值。解決此問題的語法是,對第一種情況用 ${$a[1]},對第二種情況用 ${$a}[1]。
學習心得:
#對變數概念的理解,變數就是放資訊的容器
#變數的四種作用域的應該範圍與差異
#