Từ khóa nào được sử dụng để tạo hàm hủy trong PHP?

Hàm tạo và hàm hủy là các hàm đặc biệt được gọi tự động khi một đối tượng được tạo và hủy. Hàm tạo là hữu ích nhất trong cả hai, đặc biệt là vì nó cho phép bạn gửi các tham số khi tạo một đối tượng mới, sau đó có thể được sử dụng để khởi tạo các biến trên đối tượng. Đây là một ví dụ về một lớp với một hàm tạo đơn giản

class Animal
{
    public $name = "No-name animal";
    
    public function __construct()
    {
        echo "I'm alive!";        
    }
}

Như bạn có thể thấy, hàm tạo trông giống như một hàm thông thường, ngoại trừ thực tế là nó bắt đầu bằng hai dấu gạch dưới. Trong PHP, các hàm có hai ký tự gạch dưới trước tên thường cho bạn biết rằng đó được gọi là hàm ma thuật, một hàm có mục đích cụ thể và chức năng bổ sung, so với các hàm thông thường. Vì vậy, một hàm có tên chính xác là "__construct", là hàm tạo của lớp và sẽ được gọi tự động khi đối tượng được tạo. Hãy thử làm điều đó

$animal = Động vật mới();

Chỉ với dòng mã đó, đối tượng sẽ được tạo, hàm tạo được gọi và các dòng mã trong đó được thực thi, điều này sẽ khiến chúng tôi "Tôi còn sống. " dòng được xuất ra. Tuy nhiên, như đã đề cập trước đây, một lợi thế lớn của hàm tạo là khả năng truyền các tham số có thể được sử dụng để khởi tạo các biến thành viên. Hãy thử làm điều đó

name = $name;
    }
}

$animal = new Animal("Bob the Dog");
echo $animal->name;
?>

Khai báo hàm tạo với các tham số cũng giống như khai báo một hàm thông thường và truyền (các) tham số cũng giống như gọi một hàm thông thường, nhưng tất nhiên với từ khóa "mới" mà chúng tôi đã giới thiệu trước đó. Một hàm tạo có thể có bao nhiêu tham số tùy thích

Kẻ hủy diệt

Hàm hủy được gọi khi đối tượng bị hủy. Trong một số ngôn ngữ lập trình, bạn phải loại bỏ các đối tượng bạn đã tạo theo cách thủ công, nhưng trong PHP, nó được xử lý bởi Trình thu gom rác, theo dõi các đối tượng của bạn và tự động hủy chúng khi không còn cần thiết. Hãy xem ví dụ sau, đây là phiên bản mở rộng của ví dụ trước của chúng tôi

name = $name;
    }
    
    public function __destruct()
    {
        echo "I'm dead now :(";
    }
}

$animal = new Animal("Bob");
echo "Name of the animal: " . $animal->name;
?>

Như bạn có thể thấy, hàm hủy giống như hàm tạo, chỉ khác tên. Nếu bạn thử chạy ví dụ này, trước tiên bạn sẽ thấy thông báo hàm tạo, sau đó là tên của con vật mà chúng ta xuất thủ công ở dòng cuối cùng và sau đó, tập lệnh kết thúc, đối tượng bị hủy, hàm hủy được gọi và thông báo

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 một 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

Nói chung, Trình xây dựng là một loại phương thức có cùng tên với tên lớp. nó được sử dụng để khởi tạo biến của đối tượng tại thời điểm khai báo. Hàm tạo về cơ bản là khái niệm OOP trong PHP. Bạn cũng thích Gợi ý kiểu trong PHP5 và PHP Magical Constants

Trong PHP4, Trình xây dựng là phương thức có cùng tên với tên lớp trong khi ở PHP5, Chúng tôi có phương thức ma thuật say __construct để gọi hàm tạo. Hàm tạo được gọi tự động cho từng đối tượng đã được tạo. Nó có thể có hoặc không có tham số

Nếu bạn khai báo một hàm trong một lớp được đặt tên với hai dấu gạch dưới (__) như __construct, thì hàm này sẽ được coi là một hàm tạo trong PHP khi tạo một thể hiện đối tượng của lớp. Giống như bất kỳ hàm nào khác, hàm tạo có thể có tham số hoặc giá trị mặc định

  • Hàm tạo chấp nhận các tham số, có thể được gán cho các thuộc tính đối tượng khi tạo đối tượng
  • Hàm tạo có thể gọi phương thức của lớp hoặc các hàm khác
  • Constructor có thể gọi các hàm tạo của các lớp khác

GHI CHÚ. Constructor nên được định nghĩa trong lớp PUBLIC

Ví dụ cơ bản

1

2

3

4

5

6

7

8

9

10

11

12

 

lớp học Kiểm tra

{

    hàm __construct()

    {

        echo 'Within Constructor';

    }

}

$obj = mới Thử nghiệm();

// ĐẦU RA. Trong Constructor

 

Ghi chú. Nếu lớp con định nghĩa một hàm tạo không phải là hàm tạo ngầm thì gọi hàm tạo của lớp cha. Để thực thi hàm tạo của lớp cha, hãy gọi cha trong hàm tạo của lớp cha. __xây dựng();

Trình xây dựng được tham số hóa

Hàm tạo được tham số hóa có nghĩa là chúng ta truyền tham số bên trong phương thức hàm tạo. Trình xây dựng có thể lấy đối số để

Hãy xem bằng ví dụ

1

2

3

4

5

6

7

8

9

10

11

 

lớp const_over

{

    hàm __construct($name)

    {

        echo $tên;

    }

}

$obj = mới const_over("Bhumi");// Constructor called implictly

// ĐẦU RA. // Bhumi

 

GHI CHÚ. Hàm tạo là hàm thành viên không tĩnh

Kẻ hủy diệt là gì?

Hàm hủy được gọi cho từng đối tượng của lớp bị hủy. Nó xuất hiện dưới dạng hàm thành viên của mỗi lớp cho dù nó có được định nghĩa hay không. Đối với hàm hủy, chúng ta cũng có phương thức kỳ diệu được gọi là __destroy trong PHP

  • Destructor dùng để hủy đối tượng tại thời điểm gọi tự động, gọi không hiển thị
  • Hàm hủy không thể có tham số

Hàm hủy có thể sử dụng để đảm bảo khởi tạo đúng đối tượng của lớp và giải phóng các tài nguyên mà đối tượng có được. Hàm hủy cũng là một hàm thành viên của một lớp

Bây giờ hãy xem mã kết nối mysql sử dụng cả Trình xây dựng và trình hủy

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

 

lớp Construct_cls {

   var $dbHost,

       $dbUser,

       $dbName,

       $dbPass,

        $kết nối,

        $sql,

        $rs;

        

    hàm __construct()

    {

        $này - >dbHost = 'localhost';

        $này - >dbUser = 'root';

        $này - >dbPass = '';

        $này - >dbName = 'test';

        $này - >conn=mysql_connect($this->dbHost,$this->dbUser,$this->dbPass);

        $này - >db=mysql_select_db($this->dbName);

    }        

    chức năng runQuery()

    {  

        $này - >rs=mysql_query($this->sql);

        trả lại $cái này - >rs;

    }

    hàm __destroy()

    {

        mysql_close();

    }

}

$obj = mới Construct_cls();

$obj - >sql = "SELECT * FROM category";

$kết quả = $obj->runQuery();

$dữ liệu = mysql_fetch_array($result);

print_r($dữ liệu);

 

GHI CHÚ. Hàm hủy của lớp con sẽ không được gọi ngầm của lớp cha, để thực thi hàm hủy của lớp cha phải gọi hàm hủy cha mẹ. __ hủy()

Ở đây, trong đoạn mã trên bao gồm định nghĩa cho hàm hủy. Tôi đã đóng kết nối mysql một cách rõ ràng bằng hàm __desturation. Khi hàm hủy được gọi và chính đối tượng bị hủy

Nhân tiện, bạn có đang sử dụng hàm hủy trong ứng dụng của mình không?

Làm cách nào để tạo hàm hủy 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 (__).

Các phương thức __ constructor() và __ desturation() trong một lớp PHP là gì?

Example# __construct() là phương thức ma thuật phổ biến nhất trong PHP, bởi vì nó được sử dụng để thiết lập một lớp khi nó được khởi tạo. Đối lập với phương thức __construct() là phương thức __destroy() . Phương thức này được gọi khi không còn tham chiếu đến đối tượng mà bạn đã tạo hoặc khi bạn buộc xóa đối tượng đó.

Tại sao chúng tôi sử dụng $this trong PHP?

$đây là một từ khóa dành riêng trong PHP tham chiếu đến đối tượng gọi . Nó thường là đối tượng mà phương thức thuộc về, nhưng có thể là đối tượng khác nếu phương thức được gọi tĩnh từ ngữ cảnh của đối tượng phụ.

Cú pháp của hàm hủy là gì?

Hàm hủy là một hàm thành viên có cùng tên với lớp của nó có tiền tố là ~ (dấu ngã). Ví dụ. lớp X { công khai. // Constructor cho class X X(); . A destructor takes no arguments and has no return type.