PHP - 函式 (Functions)
課程簡介
函式是將重複使用的程式碼打包成獨立單元的方式,方便執行特定任務。PHP 支援自定義函式與內建函式。本課程將介紹函式的定義、使用與重要概念。
PHP 函式語法
1. 定義函式
使用 function
關鍵字定義函式,並指定名稱與可選的參數清單。
語法:
1
2
3
4
5
6
<?php
function 函式名稱(參數1, 參數2, ...) {
// 函式執行的程式碼
return 回傳值; // 可選
}
?>
範例:
1
2
3
4
5
6
<?php
function sayHello() {
echo "Hello, World!";
}
sayHello(); // 輸出:Hello, World!
?>
2. 傳遞參數
函式可以接受參數,並根據參數執行不同邏輯。
範例:
1
2
3
4
5
6
<?php
function greet($name) {
echo "Hello, $name!";
}
greet("Alice"); // 輸出:Hello, Alice!
?>
3. 回傳值
使用 return
關鍵字將值從函式傳回呼叫者。
範例:
1
2
3
4
5
6
7
<?php
function add($a, $b) {
return $a + $b;
}
$result = add(5, 10);
echo "總和為:$result"; // 輸出:總和為:15
?>
4. 預設參數值
在參數中設置預設值,呼叫函式時可以省略該參數。
範例:
1
2
3
4
5
6
7
<?php
function greet($name = "Guest") {
echo "Hello, $name!";
}
greet(); // 輸出:Hello, Guest!
greet("Alice"); // 輸出:Hello, Alice!
?>
5. 可變參數數量 (...
語法)
函式可以接受不定數量的參數。
範例:
1
2
3
4
5
6
<?php
function sum(...$numbers) {
return array_sum($numbers);
}
echo sum(1, 2, 3, 4); // 輸出:10
?>
6. 參數傳值與傳址
- 傳值(預設):函式只取得參數的值,對參數的改動不會影響外部變數。
- 傳址:使用
&
讓函式改動參數本身。
範例:
1
2
3
4
5
6
7
8
<?php
function addOne(&$number) {
$number++;
}
$value = 5;
addOne($value);
echo $value; // 輸出:6
?>
PHP 內建函式
PHP 提供大量內建函式,以下是幾個常用的範例:
- 字串處理函式
1 2
$length = strlen("Hello"); // 輸出:5 $upper = strtoupper("hello"); // 輸出:HELLO
- 陣列處理函式
1 2
$numbers = [1, 2, 3]; $sum = array_sum($numbers); // 輸出:6
- 數學函式
1
$max = max(10, 20, 30); // 輸出:30
教學練習
練習 1:定義函式並使用參數
撰寫一個函式,計算給定數字的平方,並將結果輸出。
範例:
1
2
3
4
5
6
<?php
function square($number) {
return $number * $number;
}
echo square(4); // 輸出:16
?>
練習 2:使用多個參數與回傳值
撰寫一個函式,接受兩個整數並回傳它們的最大值。
範例:
1
2
3
4
5
6
<?php
function maxNumber($a, $b) {
return ($a > $b) ? $a : $b;
}
echo maxNumber(10, 20); // 輸出:20
?>
練習 3:使用內建函式
建立一個陣列,並使用 array_sum()
計算總和,使用 count()
計算平均值。
範例:
1
2
3
4
5
6
<?php
$numbers = [10, 20, 30];
$total = array_sum($numbers);
$average = $total / count($numbers);
echo "平均值為:$average"; // 輸出:20
?>
教學重點
- 熟悉函式的基本語法:定義、傳參、回傳值。
- 理解預設參數值與可變參數數量的應用。
- 掌握常見內建函式的使用場景。
本文章以 CC BY 4.0 授權