- 副檔名
.php
- 程式碼寫在
<?php ?>
裡 - 以分號
;
為結尾
宣告
-
利用
define
宣告常數<?php define("GREETING", "Welcome!"); echo GREETING; // 輸出 Welcome! ?>
-
變數不需要宣告
- 以
$
作為開頭 - 以
_
或a-z
或A-Z
開頭 (不可以數字開頭) - PHP 是弱型別語言
<?php $name = "Elaine"; ?>
- 以
輸出
-
echo
能夠輸出一个以上的字符串<?php echo "hello world"; ?>
<?= "hello world"?>
-
print
只能輸出一个字符串,並 return 1<?php print "hello world"; ?>
-
echo
比print
稍快,因為它不用 return
資料型別
- 整數 integer
- 浮點數 float
- 布林值 boolean
- 字串 string
-
陣列 array
<?php $array1 = array(1, 2, 3, 4, 5); // 5.3 以前的陣列寫法 $array1 = [ ['id' => 1, 'name' => 'Elaine'], ['id' => 2, 'name' => 'Tom'], ]; // 5.4 以後的陣列寫法 ?>
-
物件 object
<?php class Person { function sayHi() { echo "hi"; } } $person = new Person; $person->sayHi(); ?>
-
資源 resource
r
只讀,從檔案的開頭開始r+
讀/寫,從檔案的開頭開始w
只寫,打開並清空檔案內容,若檔案不存在,則建立新檔案w+
讀/寫,打開並清空檔案內容,若檔案不存在,則建立新檔案a
追加,打開並向檔案尾端寫入,若檔案不存在,則建立新檔案a+
讀/追加,打開並向檔案尾端寫入,若檔案不存在,則建立新檔案x
只寫,建立新檔案,若檔案已存在,會返回 false,並噴錯x+
讀/寫,建立新檔案,若檔案已存在,會返回 false,並噴錯
<?php $file = fopen("welcome.txt", "r"); ?>
強制轉型
<?php
$str = "0"; // 字串
$num = (int)$str; // 強制轉型為整數
?>
字串運算子
.
是字串運算子,可以將句號兩邊的字串結合起來
<?php
$a = "我想學會";
$b = "PHP!";
$a = $a.$b; // $a 與 $b 的內容被結合後存入了變數 $a 的容器裡面
?>
算數運算子
+
加法-
減法*
乘法/
除法%
取餘數intdiv
取商 (PHP7 新運算方法)
<?php
$a = 10;
echo $a + 1; // 11
?>
<?php
intdiv(10, 3); // 3
?>
比較運算子
==
等於!=
<>
不等於>
大於<
小於>=
大於等於<=
小於等於===
全等,不只值要相等,資料型態也要相等
邏輯運算子
and
、&&
和or
、||
或xor
僅一!
不是
控制結構
if…
if…else…
if…elseif…else…
switch
-
?:
三元運算條件? 成立的回傳值 : 不成立的回傳值
<?php $nickname = $_GET["nickname"]; // 取得網址列傳來的變數 nickname echo $nickname == "" ? "Guest" : $nickname; // 若 $nickname 為空字串,則回傳 Guest,否則回傳 $nickname ?>
從網址列輸入變數
$_GET["變數名稱"]
來取得網址列傳來的變數
<?php
$h = $_GET["h"]; // 取得網址列傳來的 h
$w = $_GET["w"]; // 取得網址列傳來的 w
if ($h == "") {
$h = 1.72;
}
if ($w == "") {
$w = 60;
}
echo "您的BMI = ".$w / ($h * $h);
?>
例如網址是 http://localhost/myweb/index.php?h=1.8&w=60
,則輸出結果為 您的 BMI = 18.518518518519
迴圈
while
do…while
-
for
break
- break 是為迴圈中的指令,在迴圈執行的過程中,如果遇到 break 會跳出迴圈
continue
- 在迴圈中遇到 continue 時,程式運算會直接跳到條件判斷處繼續執行
foreach
foreach(陣列名稱 as $value) statement
foreach(陣列名稱 as $key => $value) statement
<?php
$arr = array("1" => "111", "2" => "222", "3" => "333");
foreach($arr as $key => $value) {
echo $key." => ".$value."<br/>";
}
?>
輸出結果為
1 => 111
2 => 222
3 => 333
陣列
- 陣列分為一般陣列,與關聯陣列 (有鍵的)
<?php
$student[1] = "陳奕迅";
$student[2] = "周杰倫";
$student[3] = "林俊傑";
?>
<?php
$student = array(
1 => "陳奕迅",
2 => "周杰倫",
3 => "林俊傑"
);
?>
當陣列成員沒有指定鍵時,預設的鍵順序是 0,1,2,3…,所以也可以寫成:
<?php
$student=array(
"", // 陣列的第一筆資料預設的鍵是 0,但因為沒有人,所以保留空
"陳奕迅", // 這裡才是 1 號
"周杰倫",
"林俊傑"
);
?>
排序陣列
sort
對陣列進行升序排列rsort
對陣列進行降序排列asort
對關聯陣列的值進行升序排列arsort
對關聯陣列的值進行降序排列ksort
對關聯陣列的鍵進行升序排列krsort
對關聯陣列的鍵進行降序排列
<?php
$cars = array("Volvo", "BMW", "Toyota");
sort($cars);
print_r($cars);
?>
輸出為
Array ( [0] => BMW [1] => Toyota [2] => Volvo )
自訂函數
function 自訂函數的名稱(參數) {
//程式
}
- 先宣告後宣告都可以
- 參數可以設預設值
function 自訂函數的名稱(參數=預設值){
//程式
}