Chương 6: Hàm trong PHP

Nội dung học:

1. Tổng quan về hàm

  • Hàm là một khối mã có thể tái sử dụng, giúp tối ưu hóa và tổ chức mã nguồn.
  • Cú pháp khai báo hàm: function tenHam($thamSo1, $thamSo2, ...) { // Mã lệnh thực thi }

2. Hàm không có tham số

  • Khai báo và sử dụng: function chaoMung() { echo "Xin chào, PHP!"; } // Gọi hàm chaoMung();

3. Hàm có tham số

  • Hàm có thể nhận giá trị từ bên ngoài qua tham số: function tinhTong($a, $b) { return $a + $b; } echo tinhTong(5, 10); // Kết quả: 15

4. Hàm với giá trị mặc định của tham số

  • Có thể thiết lập giá trị mặc định cho tham số nếu không truyền giá trị khi gọi hàm: function chaoMung($ten = "Khách") { echo "Xin chào, $ten!"; } chaoMung(); // Kết quả: Xin chào, Khách! chaoMung("Tany Kawa"); // Kết quả: Xin chào, Tany Kawa!

5. Hàm trả về giá trị

  • Hàm có thể trả về kết quả bằng từ khóa return: function nhanDoi($so) { return $so * 2; } $ketQua = nhanDoi(4); // Kết quả: 8 echo $ketQua;

6. Phạm vi biến trong hàm

  • Biến cục bộ: Biến khai báo trong hàm, chỉ sử dụng được trong hàm. function hienThi() { $bienCucBo = "Xin chào!"; echo $bienCucBo; } hienThi(); // echo $bienCucBo; // Lỗi: biến không tồn tại ngoài hàm
  • Biến toàn cục: Biến khai báo ngoài hàm, có thể truy cập trong hàm bằng từ khóa global: $bienToanCuc = 10; function congBien() { global $bienToanCuc; $bienToanCuc += 5; } congBien(); echo $bienToanCuc; // Kết quả: 15

7. Hàm ẩn danh

  • Hàm không có tên, có thể lưu vào biến hoặc dùng làm tham số: $chao = function($ten) { return "Xin chào, $ten!"; }; echo $chao("Thu Trang"); // Kết quả: Xin chào, Thu Trang!

Bài tập thực hành:

  1. Bài tập 1: Viết hàm tính giai thừa
    • Yêu cầu: Viết hàm nhận vào một số nguyên dương và trả về giai thừa của nó.
    • Gợi ý: function giaiThua($n) { if ($n == 0 || $n == 1) { return 1; } return $n * giaiThua($n - 1); } echo giaiThua(5); // Kết quả: 120
  2. Bài tập 2: Viết hàm kiểm tra số nguyên tố
    • Yêu cầu: Nhập vào một số, kiểm tra số đó có phải số nguyên tố không.
    • Gợi ý: function kiemTraNguyenTo($n) { if ($n <= 1) return false; for ($i = 2; $i <= sqrt($n); $i++) { if ($n % $i == 0) return false; } return true; } echo kiemTraNguyenTo(7) ? "Là số nguyên tố" : "Không phải số nguyên tố";
  3. Bài tập 3: Hàm tính tổng các số trong mảng
    • Yêu cầu: Viết hàm nhận vào một mảng và trả về tổng các phần tử trong mảng.
    • Gợi ý: function tinhTongMang($mang) { $tong = 0; foreach ($mang as $giaTri) { $tong += $giaTri; } return $tong; } $mang = [1, 2, 3, 4, 5]; echo tinhTongMang($mang); // Kết quả: 15
  4. Bài tập 4: Viết hàm kiểm tra chuỗi palindrome
    • Yêu cầu: Kiểm tra xem một chuỗi có phải là chuỗi palindrome (đọc xuôi hay ngược đều giống nhau) không.
    • Gợi ý: function kiemTraPalindrome($chuoi) { $daoNguoc = strrev($chuoi); return $chuoi === $daoNguoc; } echo kiemTraPalindrome("madam") ? "Là palindrome" : "Không phải palindrome";

Lưu ý quan trọng:

  • Đặt tên hàm ngắn gọn, dễ hiểu và biểu thị rõ mục đích.
  • Kiểm tra kỹ các giá trị trả về và tham số đầu vào.
  • Tránh sử dụng quá nhiều biến toàn cục để tăng tính an toàn và dễ bảo trì mã nguồn.

Viết một bình luận