Site logo
Authors
  • avatar Nguyễn Đức Xinh
    Name
    Nguyễn Đức Xinh
    Twitter
Published on
Published on

Tìm hiểu hàm trong PHP

Hàm trong PHP là một khối mã có thể tái sử dụng, được thiết kế để thực hiện một nhiệm vụ cụ thể. Việc sử dụng hàm giúp mã nguồn của bạn trở nên gọn gàng, dễ đọc và dễ bảo trì hơn.

Khái niệm cơ bản về hàm PHP

Định nghĩa hàm

Một hàm trong PHP được định nghĩa bằng từ khóa function, theo sau là tên hàm và một cặp dấu ngoặc tròn chứa các tham số (nếu có).

Cú pháp

function functionName($param1, $param2) {
    // Code của hàm
    return $result;
}

Gọi hàm

Để gọi một hàm, bạn chỉ cần sử dụng tên hàm kèm theo các tham số (nếu có) trong dấu ngoặc tròn.

Ví dụ

function add($a, $b) {
    return $a + $b;
}

echo add(5, 3); // Output: 8

Tham số và giá trị trả về

Tham số

Tham số là các biến được truyền vào hàm khi gọi hàm. Bạn có thể định nghĩa các tham số mặc định để sử dụng khi không có giá trị nào được truyền vào.

Ví dụ

function greet($name = "Guest") {
    return "Hello, " . $name;
}

echo greet("John"); // Output: Hello, John
echo greet(); // Output: Hello, Guest

Giá trị trả về

Hàm có thể trả về một giá trị bằng cách sử dụng từ khóa return. Nếu không có return, hàm sẽ trả về NULL theo mặc định.

Ví dụ

function multiply($a, $b) {
    return $a * $b;
}

$result = multiply(4, 5);
echo $result; // Output: 20

Hàm ẩn danh (Anonymous Function)

Hàm ẩn danh là hàm không có tên, thường được sử dụng như các giá trị của biến hoặc các tham số của hàm khác.

Ví dụ

$greet = function($name) {
    return "Hello, " . $name;
};

echo $greet("Alice"); // Output: Hello, Alice

Hàm mũi tên (Arrow Function)

Hàm mũi tên là một cú pháp ngắn gọn để định nghĩa các hàm ẩn danh, được giới thiệu trong PHP 7.4.

Ví dụ

$multiply = fn($a, $b) => $a * $b;
echo $multiply(3, 4); // Output: 12

Phạm vi biến (Variable Scope)

Biến trong PHP có phạm vi khác nhau tùy thuộc vào nơi chúng được định nghĩa. Các phạm vi phổ biến bao gồm phạm vi toàn cục và phạm vi cục bộ.

Phạm vi toàn cục

Biến được định nghĩa bên ngoài hàm có phạm vi toàn cục và có thể được truy cập từ bất kỳ đâu trong mã nguồn.

Ví dụ

$globalVar = "I am global";

function testGlobal() {
    global $globalVar;
    echo $globalVar;
}

testGlobal(); // Output: I am global

Phạm vi cục bộ

Biến được định nghĩa bên trong hàm có phạm vi cục bộ và chỉ có thể được truy cập từ bên trong hàm đó.

Ví dụ

function testLocal() {
    $localVar = "I am local";
    echo $localVar;
}

testLocal(); // Output: I am local
// echo $localVar; // Lỗi: Undefined variable

Hàm đệ quy (Recursive Function)

Hàm đệ quy là hàm tự gọi chính nó. Hàm đệ quy thường được sử dụng để giải quyết các vấn đề có cấu trúc lặp lại.

Ví dụ

function factorial($n) {
    if ($n <= 1) {
        return 1;
    }
    return $n * factorial($n - 1);
}

echo factorial(5); // Output: 120

Hàm nội tuyến (Inline Function)

Hàm nội tuyến là hàm được định nghĩa bên trong một hàm khác. Chúng thường được sử dụng để tạo ra các hàm tạm thời chỉ có ý nghĩa trong phạm vi của hàm chứa.

Ví dụ

function outerFunction() {
    function innerFunction() {
        return "I am inner";
    }
    return innerFunction();
}

echo outerFunction(); // Output: I am inner

Kết luận

Hàm là một phần quan trọng của lập trình PHP, giúp mã nguồn của bạn trở nên gọn gàng, dễ đọc và dễ bảo trì hơn. Bằng cách hiểu và sử dụng các khái niệm về hàm, bạn có thể viết mã PHP hiệu quả và linh hoạt hơn.