Bài 13: cách sử dụng hàm function trong PHP

Bài 13: cách sử dụng hàm function trong PHP

Sử dụng hàm(function) trong PHP giúp bạn giải quyết các vấn đề như không phải lặp đi lặp lại một đoạn code hay một công thức.

Chỉ cần tạo hàm 1 lần bạn có thể gọi và sử dụng nó trong suốt quá trình. Đây là yếu tố cần phải biết và nắm vững kiến thức này.

Ở bài 12 chúng ta đã được tìm hiểu về các lệnh break, continue, die trong PHP rồi, hôm nay hãy cùng tìm hiểu về hàm nhé.

Cấu trúc của hàm(function) trong PHP

Thực chất các hàm toán học như pi, abs, min, max cũng là hàm function được viết sẵn trong thư viện của ngôn ngữ lập trình PHP.

Một hàm(function) trong PHP có cấu trúc như sau:

function ten_ham(dau_vao)
{
    // các câu lệnh
    return gia_tri-tra-ve;
}

trong đó:

  • function là câu lệnh để tạo hàm
  • ten_ham do bạn đặt nhưng không được trùng với các hàm hay lệnh có sẵn của PHP. Được quy định bởi các chữ cái từ A-z và các số từ 0 đến 9.
  • dau_vao có thể bao gồm nhiều giá trị cho đầu vào.
  • return dùng để trả về kết quả của hàm sau khi thực hiện các câu lệnh, đoạn code trong hàm.

Cách tạo hàm(function) trong PHP

Bạn nên đọc kỹ bài số 2 về cách khai báo biến và hằng trong PHP để áp dụng vào hàm(function) trong PHP.

Mệnh đề return trong hàm(function) PHP

Một hàm có thể có mệnh để return hoặc không. Nếu gặp return trong hàm thì ngay lập tức kết quả sẽ được trả về và dừng thực thi các câu lệnh phía sau mệnh đề này trong hàm.

Hàm không thể trả vè nhiều giá trị. Giá trị trả về có thể là giá trị của biến hoặc một mảng nhiều giá trị

Ví dụ:

<?php
function tinhtong($a,$b){
	$c=$a+$b;
	return $c;
}
// gọi hàm
echo tinhtong(3,4);
// kết quả: 7
?>

Hoặc không có sử dụng mệnh đề return:

<?php
function tinhtong($a,$b){
	$c=$a+$b;
	echo $c;
}
// gọi hàm
tinhtong(3,4);
// kết quả: 7
?>

Như vậy bạn có thể hiểu cách để một hàm trả về khi sử dụng mệnh đề return là như thế nào rồi.

Với hàm(function) không có tham số đầu vào trong PHP

Hàm(function) trong PHP có thể không cần đối số truyền vào:

ví dụ:

<?php
function loichao(){
	echo 'Chào mừng bạn đến với blog của sonnguyenaz.com';
}
// gọi hàm
loichao();
?>

Giải thích:

  • Trước tiên ta tạo một hàm(function) loichao() không cần truyền vào đối số
  • Nhiệm vụ của hàm này là chỉ in ra dòng chữ “Chào mừng bạn đến với blog của sonnguyenaz.com
  • Sau đó gọi hàm loichao() ra để sử dụng ở bất cứ đâu bạn muốn trong 1 file code PHP

Với hàm(function) có tham số đầu vào trong PHP

Tham số đầu vào mặc định

Bạn có thể truyền luôn tham số đầu vào mặc định cho hàm(fucntion) trong PHP

Lưu ý : Các tham số đầu vào mặc định phải viết sau các tham số đầu vào không có giá trị mặc định

<?php
function tinhtong($e,$a=3,$b=4){
	$c=$a+$b+$e;
	echo $c;
}
// gọi hàm
tinhtong(10);
// kết quả: 17
tinhtong(2,5,7);
//kết quả: 14
?>

Giải thích:

  • Như hàm trên thì ta thấy 2 tham số đầu vào mặc định là $a=3$b=4 được viết sau $e là tham số đầu vào không mặc định
  • Nếu ta bỏ trống hai tham số đầu vào mặc định thì kết quả khi gọi hàm tinhtong(10) thì e=10, a=3,b=4 tổng là 17.
  • Còn nếu ta đưa tham số đầu vào thì tham số mặc định không còn ý nghĩa. Khi ta gọi hàm tinhtong(2,5,7) thì a=2, b=5e=7 kết quả trả về tổng là 14

Tham số đầu vào được truyền qua biến

Tham số đầu vào có thể không cần kiểu dữ liệu nếu muốn kiểm soát kiểu thì chúng ta có thể thêm vào

Ví dụ: viết hàm tính chu vi hình chữ nhật với tham số đầu vào là a và b là chiều dài và chiều rộng của hình chữ nhật.

<?php
function tinh_chu_vi_hinh_chu_nhat($a,$b){
	$chuvi=($a+$b)*2;
	return $chuvi;
}
// Gán giá trị cho biến
$chieudai=5;
$chieurong=2;
echo tinh_chu_vi_hinh_chu_nhat($chieudai,$chieurong);
// kết quả: 14
?>

Hoặc khai báo luôn kiểu dữ liệu float cho giá trị đầu vào:

<?php
function tinh_chu_vi_hinh_chu_nhat(float $a,float $b){
	$chuvi=($a+$b)*2;
	return $chuvi;
}
// Gán giá trị cho biến
$chieudai=5;
$chieurong=2;
echo tinh_chu_vi_hinh_chu_nhat($chieudai,$chieurong);
// kết quả: 14
?>

Hàm(function) trả về mảng với nhiều giá trị

Như đã biến thì một hàm chỉ được return với một giá trị duy nhất,

Bây giờ cũng ví dụ như hàm tính chu vi hình chữ nhật bạn muốn trả về thêm diện tích hình chữ nhật và xem có phải giá trị đưa ra là hình vuông hay không?

Vậy ta nghĩ đến việc trả về mảng array trong PHP:

<?php
function hinh_chu_nhat(float $a,float $b){
	$chuvi=($a+$b)*2;
	$dientich=$a*$b;
	if($a==$b){
		$kiemtra='Hình vuông';
	}
	else{
		$kiemtra='Hình chữ nhật';
	}
	$mang=array(
	'chuvi'=>$chuvi,
	'dientich'=>$dientich,
	'kiemtra'=>$kiemtra
	);
	return $mang;
}
// Gán giá trị cho biến
$chieudai=5;
$chieurong=5;
echo '<pre>';
print_r(hinh_chu_nhat($chieudai,$chieurong));
?>

Kết quả là:

Như vậy khi trả về mảng chúng ta có thể thoải mái chèn giá trị vào đúng không nào.

Lời kết

Ở bài viết này chúng ta đã được tìm hiểu về cách tạo hàm(function) và cách sử dụng nó trong PHP. Qua các ví dụ trên hi vọng bạn sẽ giúp bạn giải quyết các bài toán một cách đơn giản nhất.

Cảm ơn các bạn đã theo dõi bài viết này.

Rate this post

sonnguyen

Là một nhân viên IT thích chia sẻ những gì mình biết đến tất cả mọi người. Hi vọng được mọi người ủng hộ, nếu có gì sai sót mong các bạn comment xuống dưới để mình khắc phục. Cảm ơn mọi người!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *