Hàm

Hàm Là Gì

Hàm (hay còn gọi là function) bao gồm một hoặc nhiều câu lệnh được nhóm lại với nhau và có thể được sử dụng lặp đi lặp lại nhiều lần trong chương trình.

function sum($num1, $num2) {
    return $num1 + $num2;
}

echo sum(2, 3);
echo sum(10, 15);

Chạy

Khai Báo Hàm

Để khai báo hàm không có tham số chúng ta sử dụng từ khoá function theo sau là tên hàm cặp dấu ngoặc đơn () và các tham số đầu vào cho hàm (tuỳ chọn).

Ví dụ dưới đây khai báo hàm say() không có tham số đầu vào:

function say() {
    echo "Xin chào";
}

Chạy

Ví dụ dưới đây khai báo hàm say() có tham số đầu vào là $name:

function say($name) {
    echo "Xin chào $name";
}

Gọi Hàm

Các câu lệnh trong hàm sẽ không được thực thi khi chúng ta khai báo hàm. Để thực thi các câu lệnh này chúng ta cần phải gọi hàm. Việc gọi hàm khá đơn giản, bạn chỉ cần sử dụng tên hàm đã khai báo theo sau bởi cặp dấu ngoặc và truyền vào các đối số (trong trường hợp gọi các hàm có tham số đầu vào).

Ví dụ dưới đây gọi hàm say() không có tham số đầu vào:

function say() {
    echo "Xin chào";
}
say();

Ví dụ dưới đây gọi hàm say() được định nghĩa với tham số đầu vào là $name:

function say($name) {
    echo "Xin chào $name";
}

say("PHP"); // Xin chào PHP
say("JavaScript"); // Xin chào JavaScript

Chạy

Ở trên các giá trị truyền vào cho tham số $name như "PHP""JavaScript" được gọi là các đối số khi gọi hàm.

PHP không giới hạn số lần một hàm được gọi. Bạn có thể gọi hàm lặp đi lặp lại với số lần tuỳ thích.

Bạn cũng có thể định nghĩa nhiều đối số khác nhau cho một hàm.

function sum($num1, $num2) {
    echo $num1 + $num2;
}

sum(2, 3);

Với các hàm được định nghĩa sử dụng tham số đầu vào thì khi gọi bạn bắt buộc phải đưa vào giá trị đối số tương ứng cho tham số đó. Nếu không PHP sẽ báo lỗi.

function say($name) {
    echo "Xin chào $name";
}

say() // báo lỗi

Chạy

Tuy nhiên khi sử dụng đối số mặc định thì bạn không nhất thiết phải truyền vào giá trị đối số khi gọi hàm.

Đối Số Mặc Định

Khi khai báo hàm với tham số truyền vào, bạn có thể quy định một giá trị đối số mặc định cho các tham số của hàm đó.

Ở ví dụ dưới đây chúng ta định nghĩa hàm say() với tham số $name đồng thời đặt giá trị mặc định cho tham số này là "HTML":

function say($name = "HTML") {
    echo "Xin chào $name";
}

Khi gọi hàm say() ở trên bạn có thể bỏ qua đối số và khi đó giá trị mặc định là "HTML" sẽ được sử dụng.

say(); // Xin chào HTML

Chạy

Trường hợp bạn truyền vào đối số thì giá trị này sẽ được sử dụng thay vì giá trị mặc định:

say("PHP"); // Xin chào PHP

Chạy

Giá Trị Trả Về

Hàm sum() ở ví dụ trên khi được gọi sẽ hiển thị kết quả tính tổng của 2 số ra màn hình. Tuy nhiên trong một số trường hợp thì chúng ta lại không muốn hiển thị kết quả này ra màn hình mà thay vào đó chúng ta chỉ cần lấy ra giá trị trả về của tổng hai số. Lúc này chúng ta có thể sử dụng từ khoá return để lấy kết quả trả về khi gọi hàm.

Ví dụ:

function sum($num1, $num2) {
    return $num1 + $num2;
}

Lúc này khi gọi hàm sum() ở trên bạn có thể gán gía trị trả về cho một biến $total như sau:

function sum($num1, $num2) {
    return $num1 + $num2;
}
$a = 3;
$b = 3;
$total  = $sum($a, $b);

echo "Tổng của $a và $b là $total";

Chạy

PHP Cơ Bản

Câu Hỏi
Mời Bạn Bè
Gửi email mời bạn bè
Viết Cùng Tác Giả
Bạn biết về chủ đề này và muốn tham gia viết cùng tác giả?