變數
變數是程式放資料的空間,每個變數佔有特定的記憶體空間。
程式將資料進行運算,就是對變數與記憶體進行運算。
範例:$y=$x+12
變數的命名
1.開頭不能為數字。
2.只能使用大小寫英文字母(A-Z,a-z)、數字(0-9)與底線(_)所組成。
3.不能使用保留字(如if、for、while)。
4.變數大小寫有差別,例如:$A與$a是不同的變數。
5.使用有意義的單字命名,如$score命名成績變數。
宣告變數的方式
宣告變數並初始化 ,PHP的變數一律使用$符號開頭。
$變數=初始值;
$a=10;
(一)純量型態 (scalar type)
(1)整數 (integer):PHP的整數介於最大與最小範圍之內,PHP_INT_MAX 表示整數的最大值,PHP_INT_MIN表示整數的最小值,可以使用以下程式知道整數的最大與最小值。
整數型別範例程式
輸出結果
9223372036854775807
-9223372036854775808
(2)浮點數 (floating-point number):帶有小數點的數值,小數點以下有位數限制。
浮點數型別範例程式
輸出結果
3.14
123000
0.002
3.14
3.14
3.14
(3)字串 (string):頭尾使用單引號或雙引號包夾起來,視為字串。
字串型別範例程式
輸出結果
PHP
Hi,PHP
(4)布林 (boolean):true或false兩種狀態,以下視為false,整數 0、浮點數 0.0、空字串 "" 和零字串 "0"、空陣列、NULL 和未賦值的變數,其餘表示true。
使用函式boolval將非布林值轉換成布林值,bool與boolean也可以強迫將非布林值轉換成布林值。
布林型別範例程式
輸出結果
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
(二)複合型態 (compound type)
(1)陣列 (array):可以儲存多個值的空間,在陣列單元會詳細介紹。
陣列範例程式
執行結果
1 2 3 4
(2)物件 (object):PHP支援物件導向程式設計,類別(class)的實體稱作物件。
(三)特殊型態
(1)NULL:未賦值的變數、變數使用null賦值、或使用函式unset去除賦值的變數,使用var_dump輸出變數的值。
NULL型別範例程式
執行結果
Warning: Undefined variable $a in C:\xampp\htdocs\tut\null.php on line 2
NULL
NULL
Warning: Undefined variable $a in C:\xampp\htdocs\tut\null.php on line 9
NULL
(2)資源 (resource):外部資源的物件,例如:資料庫連線 (database connection) 與檔案 (file),以下程式,$conn為資料庫連線,就是外部資源物件。
算術運算子
負責數值的運算,如加、減、乘、除與求餘數
(1) +
說明:相加
範例:$A=2+1;
結果:$A=3
(2) -
說明:相減
範例:$A=2-1;
結果:$A=1
(3) *
說明:相乘
範例:$A=2*3;
結果:$A=6
(4) /
說明:相除
範例:$A=7/2;
結果:$A=3.5
(5) %
說明:求餘數
範例:$A=4%3;
結果:$A=1
(6) **
說明:次方
範例:$A=2**3;
結果:$A=8
算術運算子範例程式
執行結果
3
1
6
3.5
1
8
範例-華氏轉攝氏
增量賦值(Augmented Assignment)
當等號的左右兩邊使用到相同變數,可以將運算子與等號結合縮短程式碼,達成相同效果,這類運算子,先運算再指定,稱為增量賦值(Augmented Assignment)運算子。例如:「$a = $a+1」也可以寫成「$a += 1」,不只加法(+) 可以如此縮寫,其他算術運算子也可以縮寫,如下所示。
增量賦值範例程式
執行結果
2
3
(1) <
判斷是否小於,若是回傳true,否則回傳false
範例:4<1,計算結果為false。
(2)>
判斷是否大於,若是回傳true,否則回傳false
範例:4>1,計算結果為true。
(3)<=
判斷是否小於等於,若是回傳true,否則回傳false
範例:4<=1,計算結果為false。
(4)>=
判斷是否大於等於,若是回傳true,否則回傳false
範例:4>=1,計算結果為true。
(5)==
判斷是否等於,若是回傳true,否則回傳false
範例:4==1,計算結果為false。
範例:4=="4",計算結果為true。
(6)!= 或 <>
判斷是否不等於,若是回傳true,否則回傳false
範例:4!=1,計算結果為true。
範例:4<>1,計算結果為true。
(7)===
判斷是否全相等,數值相等外,資料型別也要相同,若是回傳true,否則回傳false
範例:4==="4",計算結果為false。
(8)!==
判斷是否不全等,若是回傳true,否則回傳false。數值與資料型別都相同回傳false,否則回傳true。
範例:4!==4,計算結果為false。
(9)<=>
太空船(Spaceship)比較運算,前面大於後面回傳1,前面與後面相等回傳0,前面小於後面回傳-1。
範例:4<=>3,計算結果為1。
範例:4<=>4,計算結果為0。
範例:4<=>5,計算結果為-1。
比較運算子範例程式
執行結果
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)
int(1)
int(0)
int(-1)
邏輯運算子
邏輯運算子有且(and、&&)、或(or、||)、非(!)、互斥或(xor)
$X and $Y
$X or $Y
$X xor $Y
!$X
邏輯運算子範例程式
執行結果
bool(false)
bool(false)
bool(true)
bool(true)
bool(true)
範例-判斷成績是否大於等於60小於80
執行結果
bool(false)
條件運算子
使用條件運算子(?)可以簡化條件判斷程式碼。
條件運算子語法
(條件判斷) ? 條件成立的敘述 : 條件不成立的敘述
程式範例(是否及格)
($score>= 60) ? "及格" : "不及格"
條件運算子範例程式
輸出結果
及格
位元運算
以下為PHP所提供的位元運算,位元運算前會將所有數值轉換成二進位值,範例中使用5的二進位值為00000101,3的二進位值為00000011,以下舉例位元運算。
位元運算子範例程式
輸出結果
int(1)
int(7)
int(6)
int(6)
int(1)
int(-6)
運算子優先權次序
$F=2+3*5-14/7,這是一個計算公式,有加減乘除四種運算子,乘除先運算或加減先運算會有不同的結果,而運算子的運算先後順序是有其規則的,這些規則定義在程式語言裡,以下是PHP語言運算子的優先權規定,由高到低如下。
++, -- (遞增減運算)
~ (位元運算取相反)
! (邏輯運算not)
*, /, % (算術運算)
+, - (比較運算)
<<, >> (位元運算)
<, <=, >, >= (比較運算)
==, !=, ===, !== (比較運算)
& (位元運算)
^ (位元運算)
| (位元運算)
&& (邏輯運算)
|| (邏輯運算)
?: (三元運算)
=, +=, -=, *=, /=, %=, .= (賦值運算)
and (邏輯運算)
xor (邏輯運算)
or (邏輯運算)