07 Nov

Rate this post

Hàm là một chương trình thực hiện một tác vụ định nghĩa 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, nền tảng cho những bước tiếp theo như lập trình hướng đối tượng. Cùng tìm hiểu và khám phá nhé.

1. Hàm là gì?

Hàm là một đoạn code đặc biệt được viết để thực hiện một công việc nào đó thường được lặ lại nhiều lần

Có 2 loại hàm trong PHP

  • Hàm  do PHP cung cấp
     
  • Hàm do người dùng tự định nghĩa
     

2. Cấu trúc của một hàm Trong PHP

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

 

Trong đó:

func_name là tên hàm được sử dụng khi gọi hàm, tên hàm nên đặt có ý nghĩa gợi nhớ

$vars là tham số truyền vào,

$val là dùng để truyền dữ liệu bên ngoài vào, hàm có thể có hoặc không có tham số

Trường hợp hàm không có giá trị trả về thì sẽ không có return.

Ví dụ: Ta có hàm kiểm tra số chẵn số lẻ như sau:

Trong một hàm, ta có thể truyền vào nhiều tham số, tùy theo yêu cầu của bài toán.

Ví dụ:

Hàm tính tổng hai số  a và b. Hàm này sẽ tính tổng của 2 biến truyền vào, các biến cách nhau bởi dấu phẩy.

 

3. Các Cách Gọi Hàm Trong PHP

Trước khi tìm hiểu cách gọi hàm mình sẽ tìm hiểu qua tầm vực biến trong PHP , đây là một nội dung khá quan trọng vì chương trình chúng ta có tái sử dụng hàm và trong hàm có các biến lưu trữ dữ liệu   

  • Biến chung hay gọi là biến toàn cục: được khai báo ngoài phạm vi của  các hàm, hoặc trong hàm ta phải có từ khóaglobal trước tên biến để chương trình hiểu rằng là biến chung
  • Biến riêng: khai báo bên trong hàm mình khai báo bình thường và không khai báo global nhé.
     
  • Biến  static là biến được khởi tạo khi chạy chương trình, nên được dùng để lưu trữ các giá trị mặc định, hay được dùng tới, public stactic được gọi là toàn cục, qua PHP nâng cao sẽ hiểu kĩ hơn.
  • Biến $_SESSION: có giá trị toàn cục, cho mọi trang trong phiên làm việc, biến này thường dùng để làm form đăng nhập và giỏ hàng, mình sẽ giới thiệu kĩ hơn phần này. PHP xây dựng sẵn một số biến toàn cục với tên quy ước $_TÊN(in hoa)

Sử dụng: tên_hàm(Danh sách các giá tri)

Trong đó:

  • Tên hàm gọi sử dụng phải giống tên hàm đã xây dựng
  • Danh sách các giá trị cung cấp các thông tin cho tham số của hàm: sô lượng tham số truyền vào, đúng thứ tự, kiểu dữ liệu phải tương ứng

Truyền bằng giá trị:

Mặc định tất cả các đối số truyền vào hàm đều là truyền bằng giá trị. Điều này có nghĩa là khi các đối số được truyền đến hàm được gọi, giá trị được truyền thông qua các biến tạm (tham số hình thức). mọi thao tác chỉ thực hiện trên biến tạm này nên nó không hề tác động đến biến chính của mình. Tức là nếu truyền bằng giá trị thì trong hàm thì khi ta tác động đến giá trị biến truyền vào sau đó thoát khỏi hàm giá trị đó không thay đổi.

Ví dụ:

 

Kết quả xuất ra màn hình sẽ là 2 và 1. Như thế biến $a vẫn giữ nguyên giá trị bằng 1 sau khi hàm kết thúc. Còn trong hàm thì biến $a có giá trị là 2.

Truyền bằng tham chiếu:

Khi các đối số được truyền bằng giá trị thì giá trị của các đối số của hàm đang gọi không bị thay đổi. Tuy nhiên đôi khi bạn muốn những giá trị đó thay đổi theo thì lúc này bạn phải truyền biến vào hàm dạng tham chiếu.

Đối với tham biến chúng ta sẽ sử dụng cú pháp với kí tự & ở phía trước

Ví dụ:

 

Kết quả xuất ra màn hình là 2 và 2. như vậy biến $a đã bị thay đổi.

Sự khác biệt ở đoạn code này so với đoạn code trên là biến $a ở hàm tng_len_1 có dấu &, đây chính là cú pháp trong PHP báo cho trình biên dịch biết đó là một biến ở dạng tham chiếu.

4. Các Quy Tắc Và Phạm Vi Của Hàm

Một hàm có thể gọi tới một hàm, tức là trong phần thân của hàm A có thể gọi đến hàm B, và trong thân hàm B có thể gọi đến hàm C. Đây chính là hàm gọi hàm.

Ví dụ:

 

Bạn có thấy sự thú vị không? Bạn cứ chạy code theo quy tắc từ trên xuống và từ trái qua phải. Debug từng dòng là sẽ ra được kêt quả. Nếu bạn làm quen thì sau này bạn sẽ quản lý được code của mình đó.

5. Một số lỗi thường gặp

  • Lỗi cú pháp:  đặt tên biến sai quy tắt, thiếu ; ,  PHP có phân biệt chữ hoa chữ thương, chuỗi không dùng ” “, ‘ ‘;
  • Lỗi thực thi: gọi hàm không tồn tại,mở tập tin đang tồn tại
  • Sử lý lỗi ta dùng try catch 
     

6. Lời kết

Thường thì người ta viết các hàm vào một file php riêng, và chương trình chính vào một file PHP riêng. Trong chương trình chính muốn sử dụng hàm nào thì gọi hàm đó vào. Mình xin dừng bài viết tại đây, mọi thắc mắc cũng như góp ý cho bài viết, vui lòng để lại bình luận bên dưới nhé. Đừng quên đón chờ bài tiếp theo, Mảng và các thao tác trên mảng trong PHP.