Hàm unset() trong PHP

Hàm unset() trong PHP
Hàm unset() trong PHP

Chức năng của Hàm unset() trong PHP

Hàm unset() trong PHP dùng để xóa đi một biến hoặc nhiều biến, xóa được phần tử trong mảng, các biến được xóa sẽ không còn gọi được nữa vì biến đó không còn tồn tại trong bộ nhớ.

Cú pháp của Hàm unset() trong PHP

unset($biến_dữ_liệu);

$biến_dữ_liệu: Biến chứa dữ liệu hoặc biến chứa một phần tử của mảng (Ví dụ: $bienmang, $bienint, $bienmang['4'],....).

unset($biến_1,$biến_2,$biến_3,$biến_4);

$biến_1,$biến_2,$biến_3,$biến_4: Xóa được nhiều biến.

Code Hàm unset() trong PHP

<h2>Hàm unset() xóa biến integer</h2>
<?php 
session_start();

$bienint = 35;
echo "Số tuổi là: ".$bienint."<br>"; // Kết quả: Số tuổi là: 35

// Xóa biến integer
unset($bienint);
echo "Số tuổi là: ".$bienint."<br>"; // Kết quả: Số tuổi là:
?>

<h2>Hàm unset() xóa biến string</h2>
<?php 
$bienstr =  "Lực";
echo "Tên: ".$bienstr."<br>"; // Kết quả: Tên: Lực

// Xóa biến string
unset($bienstr);
echo "Tên: ".$bienstr."<br>"; // Kết quả: Tên:
?>

<h2>Hàm unset() xóa biến array và phần tử trong mảng</h2>
<?php 
$bienmang = array("Lực","Vân","Dung","Quỳnh","Hạ");
print_r($bienmang); // Kết quả: Array ( [0] => Lực [1] => Vân [2] => Dung [3] => Quỳnh [4] => Hạ )
echo "<br>"; 

// Xóa phần tử Hạ
unset($bienmang['4']);
print_r($bienmang); // Kết quả: Array ( [0] => Lực [1] => Vân [2] => Dung [3] => Quỳnh )
echo "<br>";

// Xóa biến array
unset($bienmang);
print_r($bienmang); // Kết quả:
?>

<h2>Hàm unset() xóa biến session</h2>
<?php 
$SESSION['tendangnhap'] =  "tanluc";
echo "Tên đăng nhập: ".$SESSION['tendangnhap']."<br>"; // Kết quả: Tên đăng nhập: tanluc

// Xóa biến session
unset($SESSION['tendangnhap']);
echo "Tên đăng nhập: ".$SESSION['tendangnhap']."<br>"; // Kết quả: Tên đăng nhập:
?>

<h2>Hàm unset() xóa nhiều biến</h2>
<?php 
$bienstr =  "Lực";
$bienint = 35;
$bienmang = array("Lực","Vân","Dung","Quỳnh","Hạ");
echo "Tên: ".$bienstr."<br>"; // Kết quả: Tên: Lực
echo "Số tuổi là: ".$bienint."<br>"; // Kết quả: Số tuổi là: 35
print_r($bienmang); // Kết quả: Array ( [0] => Lực [1] => Vân [2] => Dung [3] => Quỳnh [4] => Hạ )
echo "<br>";
$SESSION['tendangnhap'] =  "tanluc";
echo "Tên đăng nhập: ".$SESSION['tendangnhap']."<br>"; // Kết quả: Tên đăng nhập: tanluc
// Xóa nhiều biến
unset($bienstr,$bienint,$bienmang,$SESSION['tendangnhap']);

echo "Tên: ".$bienstr."<br>"; // Kết quả: Tên:
echo "Số tuổi là: ".$bienint."<br>"; // Kết quả: Số tuổi là:
print_r($bienmang); // Kết quả:
echo "<br>";
echo "Tên đăng nhập: ".$SESSION['tendangnhap']."<br>"; // Kết quả: Tên đăng nhập:
?>

Kết quả:

/////Hàm unset() xóa biến integer
Số tuổi là: 35
Số tuổi là:

/////Hàm unset() xóa biến string
Tên: Lực
Tên:

/////Hàm unset() xóa biến array và phần tử trong mảng
Array ( [0] => Lực [1] => Vân [2] => Dung [3] => Quỳnh [4] => Hạ )
Array ( [0] => Lực [1] => Vân [2] => Dung [3] => Quỳnh )

/////Hàm unset() xóa biến session
Tên đăng nhập: tanluc
Tên đăng nhập:

/////Hàm unset() xóa nhiều biến
Tên: Lực
Số tuổi là: 35
Array ( [0] => Lực [1] => Vân [2] => Dung [3] => Quỳnh [4] => Hạ )
Tên đăng nhập: tanluc

Tên:
Số tuổi là:
Tên đăng nhập:

Chạy Thử

Những lưu ý khi sử dụng unset() trong PHP

unset() hoạt động đơn giản nhưng có một số điểm cần chú ý, đặc biệt khi thao tác với biến và phần tử mảng. Hiểu rõ phạm vi tác động của hàm sẽ giúp tránh tình trạng truy cập vào dữ liệu không còn tồn tại hoặc xử lý sai giá trị.

unset() có ảnh hưởng đến biến gốc không?

Khi gọi unset() với một biến, biến đó sẽ bị xóa khỏi phạm vi hiện tại. Sau khi xóa, PHP không còn coi tên biến này là một biến đã được khai báo và việc sử dụng lại nó cần được thực hiện như một biến mới.

<?php
$name = "Web Mới";

unset($name);

$name = "PHP";
echo $name;
?>

Trong ví dụ trên, giá trị cũ của $name bị loại bỏ. Lệnh gán sau đó tạo lại biến $name với giá trị mới, thay vì khôi phục dữ liệu trước đó.

Với các biến được truyền vào hàm theo giá trị, việc unset() biến bên trong hàm không đồng nghĩa với xóa biến cùng tên ở bên ngoài. Phạm vi biến cần được xem xét khi sử dụng hàm này trong các đoạn code lớn.

Sử dụng unset() với phần tử trong mảng

unset() có thể dùng để loại bỏ một phần tử cụ thể khỏi mảng mà không cần xóa toàn bộ mảng. Đây là cách hữu ích khi cần loại bỏ dữ liệu không còn cần thiết trong quá trình xử lý.

<?php
$products = ["Laptop", "Chuột", "Bàn phím"];

unset($products[1]);

print_r($products);
?>

Sau khi xóa phần tử có khóa 1, mảng vẫn tồn tại nhưng khóa đó không còn. Với mảng có chỉ số số nguyên, unset() cũng không tự động đánh lại các khóa còn lại.

Nếu cần một dãy chỉ số liên tục sau khi xóa phần tử, có thể kết hợp với array_values():

<?php
$products = ["Laptop", "Chuột", "Bàn phím"];

unset($products[1]);

$products = array_values($products);

print_r($products);
?>

Phân biệt unset() với gán giá trị null

unset() và việc gán null không hoàn toàn giống nhau. Khi gán null, biến vẫn tồn tại nhưng giá trị của nó là null. Trong khi đó, unset() loại bỏ biến khỏi phạm vi hiện tại.

<?php
$firstName = null;
$lastName = "Nguyen";

unset($lastName);

var_dump($firstName);
var_dump($lastName);
?>

Trong trường hợp trên, $firstName vẫn là một biến có giá trị null, còn $lastName đã bị loại bỏ. Vì vậy, không nên xem hai cách này là tương đương khi xây dựng điều kiện hoặc kiểm tra sự tồn tại của biến.

Nếu mục đích chỉ là biểu thị một giá trị hiện chưa có dữ liệu, null thường phù hợp hơn. Nếu muốn loại bỏ biến hoặc phần tử khỏi cấu trúc dữ liệu hiện tại, unset() là lựa chọn rõ ràng hơn.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Hàm unset() trong PHP.

  • 0 Bình luận
Trần Thị Vân | Content Creator Web Mới
Trần Thị Vân
Trần Thị Vân là Content Creator tại Web Mới, phụ trách nghiên cứu, biên soạn nội dung và chia sẻ kiến thức về website, SEO, lập trình cùng các xu hướng công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Hàm unset() trong PHP
Email, Điện thoại 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 *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !