Hàm tạo là gì Sử dụng hàm hủy trong PHP là gì?

  • PHP 5 giới thiệu khái niệm hàm hủy tương tự như khái niệm của các ngôn ngữ hướng đối tượng khác, chẳng hạn như C++
  • Phương thức hàm hủy sẽ được gọi ngay sau khi tất cả các tham chiếu đến một đối tượng cụ thể bị xóa hoặc khi đối tượng bị hủy một cách rõ ràng theo bất kỳ thứ tự nào trong trình tự tắt máy
  • Chúng tôi tạo hàm hủy bằng cách sử dụng chức năng "__destroy"

ví dụ 1

đầu ra

Hàm tạo là gì Sử dụng hàm hủy trong PHP là gì?

Tóm lược. Trong hướng dẫn này, bạn sẽ tìm hiểu về hàm hủy PHP và sử dụng nó để dọn sạch tài nguyên khi đối tượng bị xóa

Giới thiệu về hàm hủy PHP

Giống như hàm tạo, PHP cho phép bạn định nghĩa hàm hủy cho một lớp bằng phương thức đặc biệt __destruct() như thế này

class className { public function __destruct() { //... } }

Code language: HTML, XML (xml)

Không giống như hàm tạo, hàm hủy không chấp nhận bất kỳ đối số nào. Hàm hủy được tự động gọi trước khi một đối tượng bị xóa. Nó xảy ra khi đối tượng không có tham chiếu hoặc khi tập lệnh kết thúc

Hàm hủy là một hàm được sử dụng để xóa thể hiện đối tượng được tạo bởi một hàm tạo cho một lớp nhất định, như một phần của tính năng chức năng của nó. Bất cứ khi nào hàm tạo được sử dụng trong chương trình PHP, không bắt buộc phải có hàm hủy để bổ sung cho chức năng của nó. Nhưng nó được coi là một cách thực hành tốt để có hàm hủy trong chương trình mà hàm tạo được gọi cho. Ngoài ra, phương thức này không được gọi cụ thể để thực thi, thay vào đó, nó được thực thi khi điều khiển không tìm thấy các tham chiếu chức năng nữa cho phương thức khởi tạo

Cú pháp cơ bản để gọi hàm hủy. Hàm __desturation(),

Bắt đầu khóa học phát triển phần mềm miễn phí của bạn

Phát triển web, ngôn ngữ lập trình, kiểm thử phần mềm và những thứ khác

cú pháp

__destruct ( void ) : void

Đối với mỗi hàm hủy được gọi, phải có một hàm tạo trước nó như hình bên dưới

 {
// Declaring a constructor
function __construct() {
// To initialize required properties
}
// Declaring a destructor
function __destruct() {
// To remove reference of an object
}
}
?>

Hoạt động của Destructor trong PHP

Trình hủy về cơ bản được quản lý bởi Trình thu gom rác để xóa một đối tượng khi không cần thiết nữa. Nó không thể lấy bất kỳ đối số nào làm đầu vào trái ngược với hàm tạo

Phương pháp này cũng được sử dụng để dọn sạch tài nguyên và giải phóng bộ nhớ để chứa nhiều hơn. Quá tải không thể được thực hiện với các hàm hủy và chỉ có một hàm hủy duy nhất có thể tồn tại trong cùng một lớp. Một tính năng độc đáo khác của nó là ngay cả khi tập lệnh đã dừng thực thi với sự trợ giúp của lệnh exit(), hàm hủy vẫn sẽ được gọi. Lối thoát () này sẽ không cho phép thoát khỏi các phương thức tắt máy còn sót lại

Ví dụ về Destructor trong PHP

Hãy để chúng tôi lấy một số ví dụ để hiểu hàm hủy tốt hơn

Ví dụ 1

Đây là một ví dụ đơn giản trong đó chúng ta đang tạo một hàm tạo cơ bản và sau đó hủy hàm tương tự bằng cách gọi hàm hủy

Mã số

đầu ra

Hàm tạo là gì Sử dụng hàm hủy trong PHP là gì?

Ví dụ #2

Đối với ví dụ này, chúng tôi đang sử dụng hai biến trong hàm tạo;

Mã số

";
$this->emp_fname = $emp_fname;
$this->emp_lname = $emp_lname;
}
// Declaration of destructor
public function __destruct(){
// Here we can clean the resources
echo "Removing the Object...";
}
// This method is being used to display full name
public function showName() {
echo "Employee full name is: " . $this->emp_fname . " " . $this->emp_lname . "
"; } } // Class object declaration $harry = new Employee("Harry", "Potter"); $harry->showName(); ?>

đầu ra

Hàm tạo là gì Sử dụng hàm hủy trong PHP là gì?

Ví dụ #3

Trong ví dụ này, chúng ta sẽ xem cách xử lý tệp test_doc. txt là tài liệu văn bản cần thiết phải có trong cùng thư mục làm việc với tệp chính. Đảm bảo bao gồm một số văn bản trong test_doc. txt cần được hiển thị như một phần của mã

Gói phát triển phần mềm tất cả trong một(hơn 600 khóa học, hơn 50 dự án)

Hàm tạo là gì Sử dụng hàm hủy trong PHP là gì?
Hàm tạo là gì Sử dụng hàm hủy trong PHP là gì?
Hàm tạo là gì Sử dụng hàm hủy trong PHP là gì?
Hàm tạo là gì Sử dụng hàm hủy trong PHP là gì?

Hàm tạo là gì Sử dụng hàm hủy trong PHP là gì?
Hàm tạo là gì Sử dụng hàm hủy trong PHP là gì?
Hàm tạo là gì Sử dụng hàm hủy trong PHP là gì?
Hàm tạo là gì Sử dụng hàm hủy trong PHP là gì?

Giá
Xem khóa học

600+ Khóa học trực tuyến. hơn 50 dự án. Hơn 3000 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập Trọn đời
4. 6 (84.587 xếp hạng)

fopen là chức năng tích hợp được sử dụng để mở tệp và fread là chức năng được sử dụng để đọc nội dung của tệp. Tại đây hàm hủy sẽ được gọi để đóng/hủy xử lý tệp

Mã số

first_name = $first_name;
}
public function setLink(Example $setlink){
$this->setlink = $setlink;
}
public function __destruct() {
echo 'Destroying: ', $this->first_name, PHP_EOL;
}
}
// We are creating 2 objects here
$obj1 = new Example('Example 1');
$obj2 = new Example('Example 2');
// Objects are made to point to themselves
$obj1->setLink($obj1);
$obj2->setLink($obj2);
// Destroying their global references
$obj1 = null;
$obj2 = null;
// Since both objects are declared null we cannot access them now and hence they must be destroyed
// but since they are not yet destroyed a memory leak may occur as they are still present.
//
// Garbage collector can be called as shown in below line. Uncomment to check its functionality
// gc_collect_cycles();
// Now we create 2 more objects but will not set their references
// only the obj1 and obj2 are pointing to them right now
$obj1 = new Example('Example 3');
$obj2 = new Example('Example 4');
// Removing their global references
$obj1 = null;
$obj2 = null;
// Now the Example 3 and example 4 cannot be accessed due to no references
// for them. Hence the destructor is called automatically
// previous to the execution of next line
echo 'Script has ended', PHP_EOL;
?>

đầu ra

Hàm tạo là gì Sử dụng hàm hủy trong PHP là gì?

Như đã đề cập trong mã, nếu chúng ta bỏ ghi chú hàm gc_collect_cycles() ở giữa tập lệnh, chúng ta sẽ nhận được kết quả như bên dưới

Ví dụ #4

Mã số

name = $name;
$this->file_handle = fopen($name, $fmode);
}
/**
* We are closing the file handle
*/
public function __destruct(){
if($this->file_handle){
fclose($this->file_handle);
}
}
/**
* Reading and printing file's content
*/
public function display(){
echo fread($this->file_handle, filesize($this->name));
}
}
$fu = new FileHandle('./test_doc.txt', 'r');
$fu->display();
?>

đầu ra

Hàm tạo là gì Sử dụng hàm hủy trong PHP là gì?

Cảnh báo sau được đưa ra nếu test_doc. txt không được tạo

Hàm tạo là gì Sử dụng hàm hủy trong PHP là gì?

Ưu điểm của Destructor

  • Trình hủy giúp giải phóng phân bổ bộ nhớ, do đó đảm bảo không gian cần thiết có mặt cho các đối tượng mới được tạo bởi hàm tạo hoặc giải phóng tài nguyên cho bất kỳ tác vụ nào khác
  • Đảm bảo rằng tất cả các tác vụ chạy hiệu quả vì nó đảm nhận quá trình dọn dẹp
  • Trong trường hợp có nhiều biến và cấu trúc được phân bổ, việc sử dụng hàm hủy sẽ giúp ngăn chặn rò rỉ bộ nhớ bằng cách giải phóng tài nguyên nội bộ
  • Nó quan tâm đến cả biến tĩnh và biến cục bộ

Hạn chế của Destructor

  • Hàm hủy không thể lấy bất kỳ tham số nào và chúng cũng không đưa ra bất kỳ giá trị trả về nào (thậm chí không có giá trị)
  • Kế thừa không được phép thông qua hàm hủy
  • Không bắt buộc hàm hủy sẽ tĩnh
  • Không thể tham chiếu đến địa chỉ của hàm hủy
  • Một đối tượng thuộc về lớp chứa hàm hủy không được phép là thành viên của công đoàn
  • Điều bắt buộc là hàm hủy phải có quyền truy cập công khai

Phần kết luận

Như chúng ta đã thấy, các hàm hủy là nghịch đảo chính xác của các hàm tạo được sử dụng để hủy một đối tượng sau khi sử dụng xong và không cần thêm trong mã. Do đó, đảm bảo rằng nó dọn sạch các tài nguyên không mong muốn để dành không gian cho các tài nguyên trong tương lai. Điều này được thực hiện bằng cách khai báo hàm __desturation() sẽ được PHP gọi tự động ở cuối tập lệnh

Bài viết được đề xuất

Đây là hướng dẫn về Destructor trong PHP. Ở đây chúng ta thảo luận về hoạt động, ưu điểm và hạn chế của hàm hủy trong PHP cùng với các ví dụ. Bạn cũng có thể xem các bài viết sau để tìm hiểu thêm –

Hàm tạo và hàm hủy PHP là gì?

Bạn có thể nói rằng Trình tạo là bản thiết kế để tạo đối tượng cung cấp giá trị cho các hàm thành viên và biến thành viên . Khi đối tượng được khởi tạo, hàm tạo sẽ tự động được gọi. Hàm hủy dùng để hủy các đối tượng và tự động được gọi khi kết thúc thực thi.

Hàm tạo trong PHP là gì?

Hàm tạo cho phép bạn khởi tạo các thuộc tính của đối tượng khi tạo đối tượng . Nếu bạn tạo một hàm __construct(), PHP sẽ tự động gọi hàm này khi bạn tạo một đối tượng từ một lớp. Lưu ý rằng hàm khởi tạo bắt đầu bằng hai dấu gạch dưới (__).

Tại sao hàm hủy được sử dụng trong PHP?

PHP - Hàm __destroy . Nếu bạn tạo một hàm __destroy(), PHP sẽ tự động gọi hàm này ở cuối tập lệnh. Lưu ý rằng hàm hủy bắt đầu bằng hai dấu gạch dưới (__). when the object is destructed or the script is stopped or exited. If you create a __destruct() function, PHP will automatically call this function at the end of the script. Notice that the destruct function starts with two underscores (__)!

Hàm tạo và hàm hủy là gì?

Constructor và Destructor là các hàm thành viên đặc biệt của lớp được tạo bởi trình biên dịch C++ hoặc có thể được định nghĩa bởi người dùng . Hàm khởi tạo được sử dụng để khởi tạo đối tượng của lớp trong khi hàm hủy được gọi bởi trình biên dịch khi đối tượng bị hủy.