Mục lục
Toggle– Hàm unset() trong PHP sẽ loại bỏ một hoặc nhiều biến được truyền vào. Hàm unset() cũng có thể được sử dụng để loại bỏ một phần tử xác định trong mảng.
Lưu ý: Nếu một biến toàn cục bị unset() trong một hàm nào đó. biến đó sẽ chỉ bị loại bỏ trong phạm vi của hàm. Để xóa biến toàn cục trong hàm sử dụng mảng $GLOBALS.
Ví dụ về xóa biên toàn cục hàm unset() trong PHP.
function foo() { unset($GLOBALS['bar']); } $bar = "codetutam.com"; foo();
Cú pháp:
unset( $var);
Trong đó:
$var là biến truyền vào.
// loại bỏ biến
$var = "codetutam.com"
unset($var);
// loại bỏ phần tử của mảng
$arr = [
"php",
"html",
"css"
];
unset($arr[1]);
echo "<pre>";
print_r($arr );
echo "</pre>";
// loại bỏ nhiều biến một lúc
unset($arr[1], $arr[2]);
echo "<pre>";
print_r($arr );
echo "</pre>";
Kết quả:
Array ( [0] => php [2] => css ) Array ( [0] => php )
– transtypage (unset) thường bị nhầm lẫn với hàm unset (). transtypage (unset) chỉ được sử dụng để chuyển sang loại NULL. Nó không làm thay đổi biến cast. Việc truyền (unset) không được chấp nhận kể từ phiên bản 7.2.0.
<?php $name = 'Felipe'; var_dump((unset) $name); var_dump($name); ?>
Kết quả:
NULL string(6) "Felipe"
<?php if(isset($a)) { unset($a); } ?>
Vì unset () là một cấu trúc ngôn ngữ, nó không thể được truyền bất cứ thứ gì ngoài một biến. Mục đích duy nhất của nó là “unset” biến này, nghĩa là. để loại bỏ nó khỏi phạm vi hiện tại và phá hủy dữ liệu liên quan. Điều này đặc biệt đúng với các biến tham chiếu, trong đó không phải giá trị thực bị hủy mà là tham chiếu đến giá trị đó. Đây là lý do tại sao bạn không thể bọc ‘unset ()’ trong hàm do người dùng xác định: Bạn sẽ bỏ đặt một bản sao của dữ liệu nếu tham số được truyền theo giá trị hoặc bạn sẽ bỏ đặt biến tham chiếu trong phạm vi hàm nếu tham số được truyền bằng tham chiếu. Không có cách giải quyết nào cho điều đó, vì bạn không thể truyền ‘scope’ cho một hàm trong PHP. Hàm như vậy chỉ có thể hoạt động đối với các biến tồn tại trong phạm vi chung hoặc toàn cầu (so sánh ‘unset ($ _ GLOBALS [biến])’).
Tôi không biết PHP xử lý bộ sưu tập rác bên trong như thế nào, nhưng tôi đoán hành vi này có thể dẫn đến rò rỉ bộ nhớ lớn: nếu một biến giá trị nằm ngoài phạm vi với biến thứ hai vẫn giữ tham chiếu đến giá trị trong bộ nhớ, thì hãy bỏ đặt tham chiếu đó vẫn giữ giá trị trong bộ nhớ nhưng có khả năng hủy đặt tham chiếu cuối cùng cho dữ liệu trong bộ nhớ đó, do đó: bộ nhớ bị chiếm dụng trở nên vô dụng vì bạn không thể tham chiếu nó nữa.
Xem chi tiết hơn trên php.net.
Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm unset() trong PHP. Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé.
Cảm ơn các bạn đã ghé thăm codetutam.com
Bình luận: