文章

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 授權