Chào mừng các bạn đã trở lại với Series Học PHP và MySQL từ cơ bản đến nâng cao. Bài học hôm nay chúng ta sẽ cùng tìm hiểu về hàm trong PHP.

Để việc lập trình PHP tiện lợi và gọn gàng hơn chúng ta cần phải nhờ sự trợ giúp của hàm.

Hàm là một chương trình thực hiện một tác vụ cụ thể, chúng thực chất là những đoạn chương trình nhỏ giúp giải quyết một vấn đề lớn. Hàm là một phương pháp lập trình hướng thủ tục trong ngôn ngữ PHP và các ngôn ngữ bậc cao khác, hiểu được nó các bạn mới có thể tiếp tục học những kiến thức như lập trình đối tượng, vì thế tôi hy vọng các bạn cố nắm vững nó nhé.

CÁCH SỬ DỤNG HÀM

Hàm trong PHP dùng để thực hiện một khối lệnh liên tiếp có điểm đầu và điểm cuối. Một hàm được xác định thực hiện một công việc cụ thể nào đó. Giả sử tôi viết một hàm kiểm tra số chẵn hay số lẻ thì mục đích của hàm đó là kiểm tra một số là số chẵn hay lẻ. Điều đặc biệt hàm có thể gọi ở nhiều nơi, nhiều chương trình khác nhau.

Giả sử bạn cần viết một chương trình cho người dùng đăng nhập vào hệ thống và bạn sẽ sử dụng nó ở hai ứng dụng backendfrontend. Nhưng sau một thời gian bạn muốn sửa lại một số thông tin lúc kiểm tra thì bạn sẽ phải vào hai chương trình đó và sửa lại, điều này thật tệ hại vì chương trình sẽ bị dư thừa, khó quản lý và bảo trì. Nhưng nếu bạn sử dụng hàm thì chỉ cần sửa trong hàm đó là được.

ĐẶC ĐIỂM CỦA HÀM TRONG PHP

  • Hàm trong PHP có thể có tham số hoặc không có tham số, có đối số hoặc không có đối số.
  • Tên hàm trong PHP không phân biệt chữ hoa hay chữ thường
  • Ngoài các hàm mà ngôn ngữ lập trình hỗ trợ, PHP còn cho phép người dùng xây dựng hàm tự định nghĩa, những hàm này được gọi là hàm người dùng.

 

CÁCH GỌI HÀM THÔNG THƯỜNG

  • Hàm không có giá trị trả về: function_name([tham số nếu có]).
  • Hàm có giá trị trả về: $i = function_name([tham số nếu có]).

Chú ý:

  • Gọi hàm chưa được khai báo có nghĩa là hàm đó không tồn tại trong PHP hay người dùng không định nghĩa thì lỗi sẽ phát sinh.
  • Tên hàm trong PHP không phân biệt chữ hoa hay chữ thường. Điều này có nghĩa là bạn gọi hàm có tên function_name hay FUNCTION_NAME đều cùng chung 1 kết quả, chẳng hạn như hàm name() hay Name() là một.

CẤU TRÚC CỦA MỘT HÀM TRONG PHP

Cú pháp tổng quát khai báo hàm trong PHP là:

Trong đó:

function_name là tên của hàm, $vars là các biến sẽ truyền vào trong hàm, return $val là hàm sẽ trả về giá trị $val. Nếu hàm không có trả về giá trị nào thì ta không có dòng return này.

Lưu ý: Cách đặt tên hàm

  • Tên hàm phải đặt bằng tiếng Anh.
  • Tên hàm phải có ý nghĩa đối với công việc đang làm.
  • Tên hàm bao gồm các ký tự: A-Z a-z 0-9.
  • Nếu tên hàm chỉ có 1 từ thì viết chữ thường, nếu tên hàm có 2 từ trở lên phải ngăn cách các từ đó bở dấu “_” hoặc các kí tự đầu tiên của mỗi từ phải viết hoa.

Ví dụ: Hàm kiểm tra số chẵn

Hàm kiem_tra_so_chan có nhiệm vụ kiểm tra một số là số chẵn hay số lẻ, nếu số chẵn thì trả về true, ngược lại trả về false. Muốn kiểm tra số nào thì ta truyền biến đó vào và đó chính là biến $number. Trong chương trình chính sẽ gọi đến hàm kiem_tra_so_chan và kiểm tra hàm này trả về true hoặc false, nếu true thì xuất ra màn hình “số chẵn“, ngược lại xuất ra màn hình ‘số lẻ‘.

Hàm kiem_tra_so_chan gọi là hàm có kết quả trả về vì trong thân hàm có return. Nếu bạn muốn hàm kiem_tra_so_chan không trả về giá trị mà xuất ra màn hình luôn, tức là trong chương trình chính chỉ cần gọi tới và truyền biến vào là xong. Ta làm như sau:

Chú ý: Không phải hàm nào chúng ta cũng có giá trị trả vì vậy nên không phải hàm nào cũng có return. Khi nào chúng ta dùng từ khóa return: Khi hàm có kết quả trả về thì chúng ta dùng từ khóa return, còn khi hàm không có kết quả trả về chúng ta sẽ không dùng đến return ở cuối hàm.

Đọc đến đây các bạn có thắc mắc là tại sao hàm trong PHP lại để ở dưới cùng mà các dòng lệnh ở trên vẫn hiểu, vì theo nguyên tắc trình biên dịch dịch từ trên xuống và từ trái qua phải. Đó là vì hàm trong PHP có thể để bất cứ đâu trên 1 file thì các bạn có thể gọi đến thoải mái trong file đó.

Nhưng nếu hàm ở 1 file khác thì sao?

Đơn giản thôi! Khi đó chúng ra cần sự trợ giúp của require(), require_once(), include() và include_once().

Require() có gì khác với require_once()?

Cái tên đã đủ nói lên tất cả rồi phải không? Khi có require() thì file đó sẽ được gọi nhiều lần, và require_once() ngược lại, nó chỉ được gọi 1 lần duy nhất thôi. Tương tự với incldue() và include_once().

Ví dụ:

Trong ví dụ này chúng tôi sử dụng 2 file: test.php test2.php. Trang test.php có nội dung như sau.

<?php 
    require("test2.php");
?>

Trang test2.php có nội dung như sau.

<?php
   echo “ Bạn đang truy cập website: http://hoclaptrinh.net.vn”;
?>

Trong ví dụ trên khi chạy file: test.php thì nội dung của trang test2.php sẽ được nhúng và trang test.php.

Khác nhau giữa require và include:

Nếu khi import một file bằng lệnh require thì nếu chương trình bị lỗi thì lập tức trình biên dịch sẽ dừng và xuất ra thông báo lỗi. Còn nếu sử dụng lệnh include thì đó chỉ là một cảnh báo nên chương trình vẫn chạy cho đến cuối chương trình.

Vì vậy chúng ta có chú ý như sau:

Đối với các  file HTML thì chúng ta có thể dùng include. Còn khi làm việc với các file PHP chúng ta nên sử dụng require.

Bài tiếp theo “Xây dựng Hàm và Quản lý hàm (Phần II)”.