Tiếp tục series học PHP căn bản thì trong bài học này mình sẽ giới thiệu cho các bạn về hàm (function) trong PHP là gì, cấu trúc của một hàm và cách sử dụng nó như thế nào nhé!
Hàm là gì?
Hàm (Hay còn gọi là function) là một hoặc nhiều đoạn code được viết ra để thực thi một hoặc nhiều hành động mỗi khi gọi nó, hàm có khả năng gọi đi gọi lại để sử dụng nhiều lần trong chương trình.
Để giảm thời gian lặp lại 1 thao tác code nhiều lần, PHP đã hỗ trợ người lập trình việc tự định nghĩa cho mình những hàm có khả năng lặp lại nhiều lần trong website. Việc này cũng giúp cho người lập trình kiểm soát mã nguồn một cách mạch lạc. Đồng thời có thể tùy biến ở mọi trang mà không cần phải khởi tạo hay viết lại mã lệnh như HTML thuần.
Cấu trúc của một hàm
Hàm tự định nghĩa
<?php function functionName() { //code được thực thi; } // Gọi function functionName(); ?>
Trong đó functionName là tên cùa hàm, cách đặt tên hàm cũng phải tuân thủ theo các ràng buộc tương tự như đặt tên biến.
Ví dụ: Xuất thứ tự chữ cái từ một tới 5 có sử dụng duyệt mảng.
<?php function xuatchucai(){ $name= array("one", "two", "three", "four", "five"); foreach ($name as $value){ echo "$value <br>"; } } //gọi hàm xuatchucai(); ?>
Hàm tự định nghĩa với các tham số
Trong PHP chúng ta có thể khai báo hàm có tham số hoặc không có tham số. Các tham số đóng vai trò là các biến sử dụng bên trong hàm và chúng ta có thể truyền dữ liệu đầu cho các biến này khi gọi hàm.
<?php function functionName($giatri1, $giatri2) { //code được thực thi; } ?>
Trong đó, các biến $giatri1, $giatri2 là các tham số mà bạn muốn truyền vào. Các tham số này la các biến truyền vào thuộc một kiểu dữ liệu bất kỳ nào đó ( và Không giới hạn số lượng tham số truyền vào.)
Ví dụ:
<?php function output($string){ echo "$string <br>"; } //gọi hàm output("Chào Mừng"); output("Đến với"); output("Series Học PHP căn bản"); ?>
Hàm tự định nghĩa với giá trị trả về
Hàm có thể trả về một giá trị khi được gọi. Để khai báo một hàm với giá trị trả về chúng ta sử dụng từ khoá return.
<?php function functionName(có hoặc không có đối số) { //code được thực thi; return giatri; } ?>
Lệnh return dùng để trả về cho hàm một giá trị. (Sau khi thực thi xong, hàm sẽ có một giá trị, lúc đó nó có thể được sử dụng giống như một biến)
Ví dụ: tính tích của 2 số đơn giản.
<?php function tich($a, $b){ $ketqua = $a * $b; return $ketqua; } //gọi hàm echo tich(15,20); //ket qua xuat ra man hinh se la 300 ?>
Cách gọi hàm
Nếu các bạn để ý các ví dụ bên trên thì bạn sẽ thấy ở mỗi ví dụ mình đều cho lại 1 comment gọi hàm trong chương trình. Cách gọi một function rất đơn giản, sau khi bạn đã xây dựng hàm xong thì bạn chỉ cần code theo cú pháp tương tự mãu bên dưới.
functionName(); //hoặc functionName($param);
Trong đó:
- functionName: là tên của hàm các bạn muốn gọi.
- $param: là tham số các bạn muốn truyền vào hàm (nếu lúc khai báo hàm có yêu cầu truyền tham số).
Bạn hãy xem lại ví dụ bên dưới
<?php function xuatchucai(){ $name= array("one", "two", "three", "four", "five"); foreach ($name as $value){ echo "$value <br>"; } } //sau khi xây dựng xong 1 hàm bạn hãy đóng làm lại bằng dấu } và sau đó gọi hàm bằng cách viết lại têm của hàm đó và thêm () phía sau. xuatchucai(); //Không được code dòng gọi hàm khi vẫn đang trong hàm mà bạn đang xây dựng ?>
Thiết lập giá trị mặc định cho tham số hàm trong PHP
Bạn có thể thiết lập một tham số có một giá trị mặc định nếu người gọi hàm không truyền cho nó.
Nếu một hàm trong php bạn khai báo có biến truyền vào nhưng đến lúc gọi hàm để sử dụng bạn lại không truyền biến vào thì hệ thống sẽ báo lỗi ngay. Vì thế, để không bị ràng buộc khi sử dụng hàm có tham số truyền vào, ta sẽ thiết lập giá trị mặc định cho tham số đó ngay từ bước đầu xây dựng hàm.
<?php function functionName($giatri = "gia tri mac dinh") { //code được thực thi; } ?>
Ví dụ 1:
<?php function printMessage($param = "Giá trị mặc định") { echo $param; } //gọi hàm có truyền tham số là một chuỗi printMessage("Tham số này là một chuỗi được truyền vào!!!<br />"); //gọi hàm khi không truyền tham số nào cả printMessage(); ?>
Kết quả:
Tham số này là một chuỗi được truyền vào!!! Giá trị mặc định
Ví dụ 2:
<?php function printMessage($a, $b, $c = 5)//$c sẽ có gia trị mặc định là 5 { echo $a + $b + $c; } //gọi hàm có truyền tất cả tham số vào printMessage(2,3,6); // khi này hàm sẽ tự hiểu $a =4, $b =7, $c = 6 echo " - "; //gọi hàm khi không truyền tham số $c vào printMessage(4,7); // khi này hàm sẽ tự hiểu $a =4, $b =7 và $c mặc định sẽ bằng 5 ?>
Kết quả xuất ra màn hình: 11 – 16
Truyền tham số bằng tham chiếu trong PHP
Tương tự như phần giới thiệu về cách thay đổi phần tử hiện tại bằng cách thay đổi tham chiếu mà mình đã nói qua trong bài 7 Vòng lặp Foreach ở phần thay đổi phần tử bằng tham chiếu
Ở trong function, PHP cũng tạo ra một bản sao chép giá trị của biến đó khi nạp tham số vào hàm, cho nên khi thay đổi giá trị của tham số này trong hàm thì giá trị của biến gốc sẽ vẫn như cũ mà không bị thay đổi theo.
Đôi lúc ta cần phải thay đổi luôn cả gái trị của biến gốc đang được gọi tham số trong hàm đó vì một số lý do của chương trình. Chính vì thế khi này ta sẽ phải sử dụng tham số bởi dạng tham chiếu.
Để dễ hiểu các bạn hãy xem ví dụ dưới đây:
<?php // Tạo 1 biến $bien = 0; // Hàm tăng giá trị tham số truyền vào lên 1 function tinh_cong(&$bien) //gọi tham chiếu bằng cách thêm dấu & { $bien = $bien + 1; return $bien; } // Xuất giá trị trả về của hàm cộng echo tinh_cong($bien); //kết quả màn hình: 1 // Xuất giá trị của biến gốc echo $bien; //kết quả màn hình: 1 //bạn sẽ thấy biến gốc bây giờ đã thay đổi ?>
==> Bạn có thể truyền một tham số bởi tham chiếu thông qua việc thêm một ký hiệu & trước tên biến trong lời gọi hàm hoặc định nghĩa hàm.
Kiểm tra hàm đã tồn tại
Trong thực tế khi xây dựng các dự án với PHP hướng thủ tục thì số lượng các hàm sẽ không dừng ở con số 5,10,20,… mà nó sẽ lớn hơn rất là nhiều, như vậy thì chuyện trùng lặp hàm là điều không thể tránh khỏi đối với một lập trình viên không chuyên nghiệp hoặc một lý do nào khác khiến việc trùng lặp hàm xảy ra. Chính vì đều đó trong PHP đã cung cấp cho chúng ta một hàm function_exists()
để giải quyết vấn đề đó.
Cú Pháp
function_exists('functionName');
Trong đó: functionName là tên của hàm các bạn kiểm tra và hàm này sẽ trả về giá trị TRUE nếu hàm đã tồn tại và ngược lại FALSE nếu chưa tồn tại.
<?php if (!function_exists('loopNumber')) { function loopNumber($number = 0) { for ($i = 0; $i <= $number; $i++) { echo $i; } } } //theo toidicode
Kết thúc
Qua bài trên mình đã giới thiệu và hướng dẫn các bạn cách khai báo và sử dụng hàm (function) trong PHP, đây là kiến thức quan trọng trong lập trình hướng đội tượng và các bạn sẽ phải tận dụng hàm rất nhiều trong các trương trình, dự án sau này, cho nên các bạn hãy nắm vững khái niệm về hàm nhé! Nếu có thắc mắc gì các bạn hãy để lại comment bên dưới bài viết đê mọi người cùng thảo luận nhé!
Ở bài tiếp theo mình sẽ giới thiệu cho các bạn khái niệm về mảng ( Array) trong PHP.
Hãy tiếp tục trong series học PHP căn bản ở các bài viết tiếp theo các bạn nhé!
Xem thêm:
- Lộ trình học PHP Căn Bản
- Bài 7: Vòng lặp Foreach trong PHP (Các loại vòng lặp phần 2)
- Bài 6: Các loại Vòng lặp trong PHP (for, while, do while)
- Cách sửa lỗi error establishing a database connection cho website
- Mở Đọc File Excel Trong C# Với Microsoft Office Interop Excel dll
Leave a Reply