Hàm unset() PHP sử dụng như thế nào ?

Hàm unset() là một trong những hàm xử lý biến được định nghĩa sẵn của PHP. Hàm này được sử dụng để xóa bỏ hoặc huỷ đi một biến cụ thể mà đã được khai báo trước đó. Nói cách khác, hàm unset() sẽ tiêu diệt những biến đã được khởi tạo. Điều này có thể gây ảnh hưởng đến quá trình xử lý dữ liệu của chương trình.

Trong khi sử dụng hàm unset(), cần phải chú ý rằng hành vi của hàm này có thể khác nhau trong các hàm do người dùng tự định nghĩa. Nếu một biến toàn cục (global variable) được huỷ bỏ trong một hàm, thì hàm unset() sẽ chỉ xoá biến này tại địa phương và giá trị ban đầu của biến vẫn được giữ nguyên bên ngoài hàm. Để xoá bỏ một biến toàn cục bên trong một hàm, ta có thể sử dụng mảng $GLOBALS.

Lập Trình Viên mời bạn cùng tham khảo chi tiết nội dung bên dưới. Bài viết này nằm trong chuyên đề hướng dẫn PHP từ cơ bản đến nâng cao tại dự án Phát Triển Website.

Hàm unset() PHP Là gì

Hàm unset() PHP là một hàm được định nghĩa sẵn trong PHP để xóa bỏ một biến đã được khai báo trước đó. Nói cách khác, hàm unset() sẽ tiêu diệt những biến đã được khởi tạo.

Hướng dẫn Hàm unset() PHP

Hàm unset() PHP có cú pháp như sau:

void unset ( mixed &$var, mixed &...$params )

Trong đó:

  • mixed &$var: Tham số bắt buộc và chỉ định biến cần xoá bỏ.
  • mixed &…$params: Các tham số tùy chọn và chỉ định danh sách các biến khác cần xoá bỏ.

Hàm unset() không trả về giá trị nào.

Cách triển khai hàm unset() PHP

Hàm unset() trong PHP được sử dụng để xóa các biến đã khai báo. Hàm này có thể được sử dụng để xóa các biến toàn cục, cục bộ hoặc các phần tử của mảng.

Cú pháp

unset( biến );

Trong đó:

  • biến là tên của biến cần xóa.

Ví dụ

// Xóa biến toàn cục
$a = 10;
unset($a);
echo $a; // Kết quả: NULL

// Xóa biến cục bộ
function foo() {
  $b = 20;
  unset($b);
}

foo();
echo $b; // Kết quả: NULL

// Xóa phần tử của mảng
$array = array(1, 2, 3, 4, 5);
unset($array[2]);
print_r($array); // Kết quả: Array ( [0] => 1 [1] => 2 [3] => 4 [4] => 5 )

Lưu ý

  • Hàm unset() không xóa các biến khỏi bộ nhớ ngay lập tức. PHP sẽ dọn dẹp bộ nhớ khi cần thiết.
  • Hàm unset() không thể được sử dụng để xóa các hằng số hoặc các biến được khai báo trong các hàm nội tuyến.

Ưu và Nhược điểm Hàm unset() PHP

Ưu điểm:

  • Giúp giải phóng bộ nhớ khi không sử dụng đến một biến nào đó.
  • Đối với biến toàn cục, ta có thể sử dụng mảng $GLOBALS để xoá bỏ biến này trong các hàm con.

Nhược điểm:

  • Xoá bỏ một biến bao gồm cả giá trị của biến, do đó nếu muốn sử dụng lại biến này thì cần phải khai báo lại giá trị cho biến.
  • Sử dụng hàm unset() quá nhiều có thể làm chương trình trở nên khó hiểu và khó debug.

Lời khuyên Hàm unset() PHP

  • Không nên sử dụng quá nhiều hàm unset() PHP để tránh làm chương trình trở nên khó hiểu và khó debug.
  • Nếu muốn sử dụng lại một biến sau khi đã xoá bỏ nó bằng hàm unset(), ta cần phải khai báo lại giá trị cho biến.

Kết Thúc

Hàm unset() PHP là một công cụ hữu ích giúp giải phóng bộ nhớ khi không sử dụng đến các biến được khai báo trước đó. Tuy nhiên, sử dụng quá nhiều hàm unset() có thể làm cho code trở nên khó hiểu và khó debug. Khi sử dụng hàm unset() PHP để xoá bỏ biến toàn cục trong hàm con, ta cần phải sử dụng mảng $GLOBALS để xoá bỏ biến một cách toàn diện. Nếu muốn sử dụng lại một biến sau khi đã xoá bỏ nó bằng hàm unset(), ta cần phải khai báo lại giá trị cho biến.Như vậy, qua bài viết này, chúng ta đã được tìm hiểu chi tiết về hàm unset() trong PHP. Chúng ta đã biết cách sử dụng và những lưu ý khi sử dụng hàm này để giúp cho quá trình xử lý dữ liệu của chương trình trở nên hiệu quả hơn.

Hy vọng rằng bài viết này đã giúp ích cho bạn trong việc hiểu rõ hơn về hàm unset() PHP và cách sử dụng nó một cách chính xác. Nếu bạn có bất kỳ thắc mắc hay đóng góp nào, hãy để lại bình luận bên dưới để chúng ta có thể trao đổi và học hỏi thêm từ nhau. 

Hàm unset() PHP có thể xoá bỏ các loại biến nào?

Hàm unset() có thể xoá bỏ mọi loại biến, bao gồm cả biến toàn cục và biến cục bộ.

Tại sao không nên sử dụng quá nhiều hàm unset()?

Sử dụng quá nhiều hàm unset() PHP có thể làm cho code trở nên khó hiểu và khó debug.

Tại sao cần sử dụng mảng $GLOBALS để xoá biến toàn cục trong hàm con?

Vì khi sử dụng hàm unset() để xoá bỏ biến toàn cục trong hàm con, giá trị của biến này chỉ bị xoá tại địa phương của hàm con và giá trị ban đầu của biến vẫn giữ nguyên bên ngoài hàm. Do đó, ta cần phải sử dụng mảng $GLOBALS để xoá bỏ biến toàn cục một cách toàn diện.

Hàm unset() có thể tái sử dụng một biến đã bị xoá bỏ?

Không, khi sử dụng hàm unset() để xoá bỏ một biến, cả biến lẫn giá trị của nó đều bị tiêu diệt. Nếu muốn sử dụng lại biến này, ta phải khai báo lại giá trị cho biến.

Hàm unset() có thể phá hủy bất kỳ loại biến nào?

Có, hàm unset() có thể phá hủy mọi loại biến, bao gồm cả biến cục bộ và biến toàn cục.