Hàm unset() trong PHP dùng để làm gì?

21/06/2020 - lượt xem
Chia sẻ
 
Rate this post

Định Nghĩa.

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.

Cú pháp:

unset( $var);

Trong đó:
$var  là biến truyền vào.

Ví dụ.

ví du 1.
Code:

// 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
)

ví dụ 2.

– 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"

Lưu ý.

  • Vì đây là cấu trúc ngôn ngữ, không phải là hàm, nên không thể gọi nó bằng các hàm biến.
  • Có thể phá hủy bất kỳ tài sản có thể nhìn thấy trong bối cảnh hiện tại.
  • Không thể phá hủy biến đặc biệt $this bên trong một phương thức của một đối tượng.
  • Khi sử dụng hàm này trên các thuộc tính đối tượng không thể truy cập, phương thức ma thuật __unset sẽ được gọi, nếu nó tồn tại.

Hàm liên quan.

Thông tin thêm.

  • Điều này có thể là tầm thường nhưng không có lỗi khi bỏ đặt một biến không tồn tại.
  • Bạn không cần kiểm tra xem một biến có tồn tại hay không trước khi bạn unset nó hãy sử dụng hàm.

    <?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

    Liên hệ với chúng tôi

    Để lại thông tin để nhận được các bài viết khác

    Rate this post

    Xem thêm nhiều bài tin mới nhất về Kiến thức

    Xem thêm