PHP Function Parameters – Giới thiệu về tham số hàm PHP

PHP Function Parameters - Giới thiệu về tham số hàm PHP

Tóm tắt: PHP Function Parameters, trong bài hướng dẫn này, bạn sẽ học về tham số hàm và truyền đối số bằng giá trị và tham chiếu.

Giới thiệu về tham số hàm Function Parameters PHP

Một hàm có thể có không hoặc nhiều tham số:

<?php

function function_name(parameter_list) 
{
}

Khi một hàm có nhiều tham số, bạn cần phải tách chúng bằng dấu phẩy (,).

Ví dụ sau định nghĩa hàm concat() để nối hai chuỗi thành một chuỗi:

<?php

function concat($str1, $str2)
{
	return $str1 . $str2;
}

Hàm concat() có hai tham số $str1$str2.

Khi bạn gọi hàm concat(), bạn cần truyền hai đối số tương ứng với các tham số. Ví dụ:

<?php

function concat($str1, $str2)
{
	return $str1 . $str2;
}

$greeting = concat('Chào mừng ', 'Admin');
echo $greeting;

Trong ví dụ này, $str1 sẽ lấy đối số đầu tiên 'Chào mừng ', và $str2 sẽ lấy đối số thứ hai 'Admin'.

PHP sẽ báo lỗi nếu số lượng đối số bạn truyền vào hàm ít hơn số lượng tham số. Ví dụ:

<?php

function concat($str1, $str2)
{
	return $str1 . $str2;
}

$greeting = concat('Chào mừng');
echo $greeting;

Khi bạn truyền nhiều đối số cho một hàm, bạn có thể phân chia danh sách các đối số dọc để làm mã code dễ đọc hơn như sau:

<?php

function concat($str1, $str2)
{
	return $str1 . $str2;
}

$greeting = concat(
	'Chào mừng ',
	'Nhà'
);

echo $greeting;

Là một thành thạo việc liệt kê các đối số dọc khi danh sách đối số dài.

Dấu phẩy cuối (,)

Từ PHP 7.0, danh sách đối số có thể chứa dấu phẩy cuối cùng (,) mà trình thông dịch PHP sẽ bỏ qua. Ví dụ:

$greeting = concat(
	'Chào mừng ',
	'Nhà',
);

Trong PHP 8.0, bạn có thể đặt dấu phẩy cuối cùng (,) trong danh sách tham số như sau:

function concat(
	$str1,
	$str2,
) {
	return $str1 . $str2;
}

Truyền đối số theo giá trị

Xem xét ví dụ sau:

<?php

$counter = 1;
function increase($value)
{
	$value+= 1;
	echo $value. <br>; // 2
}

// tăng giá trị counter
increase($counter);

echo $counter . <br>; // 1

Kết quả:

2
1

Cách hoạt động.

  • Trước hết, định nghĩa biến $counter và khởi tạo giá trị là một.
  • Tiếp theo, định nghĩa hàm tăng() mà tăng đối số lên một và hiển thị nó.
  • Sau đó, gọi hàm tăng() và truyền biến $counter vào hàm.
  • Cuối cùng, hiển thị biến $counter.

Khi bạn truyền biến $counter vào hàm tăng(), hàm sẽ tăng giá trị lên một. Do đó, khi bạn hiển thị giá trị của biến $counter bên trong hàm, bạn sẽ nhận được số hai.

Tuy nhiên, sau khi gọi hàm, giá trị của counter vẫn là một. Điều đó có nghĩa là hàm tăng() không tăng biến $counter bên ngoài hàm.

Điều xảy ra là khi bạn truyền biến $counter vào hàm tăng(), hàm sao chép biến $counter và sửa đổi bản sao. Nó không thay đổi biến ban đầu. Biến $counter không thay đổi.

Khi giá trị của một đối số trong hàm được thay đổi và không thay đổi bên ngoài hàm, nó được truyền bằng giá trị.

Mặc định, các đối số được truyền theo giá trị trong PHP. Nếu bạn muốn một hàm thay đổi đối số của mình, bạn cần truyền các đối số theo tham chiếu.

Truyền đối số theo tham chiếu

Để truyền một đối số theo tham chiếu, bạn thêm toán tử (&) vào tên tham số trong định nghĩa hàm như sau:

<?php

$counter = 1;
function increase( &$value )
{
	$value += 1;
	echo $value . <br>; // 2
}

// tăng giá trị counter
increase($counter);

echo $counter . <br>; // 2

Kết quả:

2
2

Trong ví dụ này, sự thay đổi của biến $counter phản ánh cả bên trong và bên ngoài hàm.

Tóm tắt

  • Tách các tham số Function Parameters bằng dấu phẩy (,). Từ PHP 8.0, danh sách tham số có thể có dấu phẩy cuối cùng (,) mà trình thông dịch PHP bỏ qua.
  • Mặc định, các đối số được truyền theo giá trị trong PHP.
  • Thêm dấu thằng (&) vào các tham số để truyền đối số theo tham chiếu.

Thành Nguyễn

Tôi là Thành, nên tôi đặt tên blog là Thành Nè, Thánh Né... là một coder cùi bắp (Code quèn). Chẳng giỏi viết lách, chỉ giỏi chém gió và có sở thích chia sẻ những kiến thức tôi đã từng...