Hàm tạo và hàm hủy trong PHP javatpoint

Đôi khi cần phải khởi tạo một số phần của đối tượng trước khi có thể sử dụng nó. Ví dụ: chúng ta đang thao tác trên ngăn xếp, trước khi thực hiện bất kỳ hành động nào, đỉnh của ngăn xếp luôn phải được đặt bằng 0. Tính năng khởi tạo tự động này được thực hiện thông qua 'Constructor'

Giống như, nếu một đối tượng cần thực thi một số mã trước khi nó bị hủy. Ví dụ: nếu một đối tượng cần đóng một tệp mà nó đã mở trước khi hủy. Nó có thể được thực hiện với sự trợ giúp của 'Destructor'. Bây giờ, hãy xem tổng quan một số khác biệt cơ bản giữa hàm tạo và hàm hủy với sự trợ giúp của biểu đồ so sánh

Nội dung. Trình xây dựng Vs Kẻ hủy diệt

Biểu đồ so sánh

Cơ sở để so sánhConstructorDestructorPurpose

Nó cấp phát bộ nhớ cho một đối tượng. Nó giải phóng bộ nhớ của một đối tượng.
Declarationclass_name( đối số nếu có){ };~ class_name( không có đối số ){ };ArgumentsConstructor chấp nhận đối sốDestructor không chấp nhận bất kỳ đối số nào. Calling Constructor được gọi tự động, trong khi đối tượng được tạo. Trình hủy được gọi tự động, khi khối được thoát hoặc chương trình kết thúc. WorkingConstructor cho phép một đối tượng khởi tạo một số giá trị của nó trước đó, nó được sử dụng. Trình hủy cho phép một đối tượng thực thi một số mã tại thời điểm bị hủy. Thứ tự thực hiện

Constructor được gọi theo thứ tự liên tiếp.
Hàm hủy được gọi theo thứ tự ngược lại với hàm tạo. Bằng sốCó thể có nhiều hàm tạo trong một lớp. Luôn có một hàm hủy duy nhất trong lớp. Copy ConstructorCopy constructor cho phép một constructor khai báo và khởi tạo một đối tượng từ một đối tượng khác. Không có khái niệm như vậy. Over loadingConstructors có thể bị quá tải. Destructor không thể bị quá tải.

Định nghĩa của Constructor

Một hàm tạo về cơ bản là một hàm thành viên của lớp, khởi tạo đối tượng và cấp phát bộ nhớ cho nó. Constructor có thể được xác định dễ dàng vì chúng được khai báo và định nghĩa với cùng tên với tên của lớp. Một hàm tạo không có bất kỳ kiểu trả về nào; . Một Constructor luôn được định nghĩa trong phần public của một lớp

Có thể có nhiều hàm tạo trong một lớp; . Nếu có nhiều hàm tạo trong một lớp;

Constructor cũng có thể được định nghĩa với các đối số mặc định. Trong khi đó, chúng cũng khởi tạo đối tượng một cách “động”. Các hàm tạo không thể được kế thừa, cũng không thể là ảo, nhưng chúng có thể bị quá tải. Họ không thể được giới thiệu đến địa chỉ của họ

Các loại Constructor

Về cơ bản có ba loại hàm tạo - Hàm tạo mặc định, được tham số hóa và sao chép

  • Nhà xây dựng mặc định. Nó là một hàm tạo mà không có đối số nào được đưa ra cho hàm tạo. Hàm tạo mặc định không có tham số, nhưng các giá trị cho hàm tạo mặc định có thể được truyền theo mặc định (động)
  • Trình xây dựng được tham số hóa. Loại hàm tạo này lấy các đối số;
  • Sao chép công cụ xây dựng. Hàm tạo bản sao khác với các loại hàm tạo khác vì nó chấp nhận địa chỉ của đối tượng khác làm đối số

Triển khai  hàm tạo

class Const
{
int a, b;
public:
Const() // constructor with no parameter
{
a=0;
b=0;
}
Const(int c, int d){ //constructor with parameter
a=c;
c=d;
}
};
int main(){
Const C1; C2(10,20); //this statement invokes constructor
}

Khi C1 được tạo, một hàm tạo không có tham số nào được thực thi, vì C1 không truyền bất kỳ tham số nào. Trong khi đó, khi C2 được tạo, một hàm tạo có tham số sẽ được thực thi, vì nó đang truyền hai số nguyên cho hàm tạo

Định nghĩa của hàm hủy

Destructor cũng là một hàm thành viên của một lớp, nó giải phóng bộ nhớ được phân bổ cho một đối tượng. Nó được định nghĩa với cùng tên với tên của một lớp, trước ký hiệu dấu ngã (~). Hàm hủy luôn được gọi theo thứ tự ngược lại với hàm tạo

Luôn có một hàm hủy duy nhất trong một lớp vì nó không chấp nhận bất kỳ đối số nào. Các đối tượng cục bộ bị hủy ngay khi quyền kiểm soát thực thi rời khỏi khối;

Hàm hủy được gọi ngầm bởi trình biên dịch. Nếu các lớp được kế thừa và một lớp được dẫn xuất từ ​​một lớp cha và cả lớp con và lớp cha đều có hàm hủy;

Triển khai Destructor

class Const
{
int a, b;
public:
Const(int c, int d) //constructor with parameter.
{
a=c;
c=d;
cout<<"value of a and b are"<

Khi đối tượng C1 được tạo, một hàm tạo có hai tham số kiểu số nguyên được gọi và phần tử “a, b” được khởi tạo và giá trị của “a, b” được in ra. Sau khi hàm hủy đó được gọi và in thông báo “đối tượng C1 bị hủy”

Cần Kẻ hủy diệt

Việc tạo hàm tạo sẽ tiêu tốn một số dung lượng bộ nhớ, vì cuối cùng nó sẽ phân bổ bộ nhớ cho các đối tượng. Bộ nhớ được cấp phát này phải được giải phóng trước khi hủy các đối tượng để giải phóng tài nguyên cho các tác vụ khác. Các hàm hủy cực kỳ hữu ích cho mục đích đã định, giúp phá hủy các đối tượng một cách hiệu quả và thực hiện các tác vụ dọn dẹp để giải phóng bộ nhớ

Sự khác biệt chính giữa hàm tạo và hàm hủy

  1. Mục đích chính của hàm tạo là cấp phát bộ nhớ cho các đối tượng khi chúng được tạo. Ngược lại, mục đích chính của hàm hủy là giải phóng bộ nhớ của đối tượng khi nó bị hủy
  2. Một hàm tạo được phép chấp nhận các đối số vì các đối số có thể được sử dụng để khởi tạo các thành viên dữ liệu của lớp. Mặt khác, hàm hủy không chấp nhận bất kỳ đối số nào vì công việc duy nhất của nó là giải phóng bộ nhớ của đối tượng
  3. Hàm tạo được gọi khi một đối tượng được tạo. Ngược lại, hàm hủy được gọi khi chương trình kết thúc hoặc chương trình thoát khỏi khối mà đối tượng được tạo
  4. Hàm tạo thường được sử dụng để khởi tạo các thành viên dữ liệu của lớp, trong khi hàm hủy được sử dụng để cho phép đối tượng thực hiện một số hành động trước khi nó bị hủy
  5. Các hàm tạo được thực thi theo thứ tự liên tiếp, nghĩa là nếu có một lớp dẫn xuất kế thừa lớp cơ sở và đối tượng của lớp dẫn xuất được tạo thì nó sẽ gọi hàm tạo của lớp cơ sở trước và sau đó là hàm tạo của lớp dẫn xuất. Ngược lại, hàm hủy của lớp dẫn xuất được gọi trước và sau đó là lớp cơ sở, điều đó có nghĩa là hàm hủy được thực hiện theo thứ tự ngược lại với hàm tạo
  6. Trong lớp, có thể có nhiều hàm tạo được xác định bởi các đối số số được truyền trong khi nó chỉ có thể có một hàm hủy
  7. Có một khái niệm về hàm tạo bản sao cho phép một đối tượng được khởi tạo từ một đối tượng khác trong khi hàm hủy không có khái niệm đó
  8. Các hàm tạo có thể bị quá tải để thực hiện các hành động khác nhau dưới tên của cùng một hàm tạo. Ngược lại, hàm hủy không thể bị quá tải

Sự kết luận

Bên cạnh điểm giống nhau, hàm tạo và hàm hủy là hàm thành viên đặc biệt của một lớp và có cùng tên, sự khác biệt cơ bản giữa cả hai hàm này là 'hàm tạo' được gọi tại thời điểm cấp phát bộ nhớ và 'hàm hủy' được gọi tại thời điểm cấp phát bộ nhớ.

Cả hàm tạo và hàm hủy đều được trình biên dịch gọi ngầm mặc dù chúng không được định nghĩa trong lớp

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

Trình xây dựng. Constructor được gọi khi một đối tượng được tạo từ một lớp. Ký tự hủy. Hàm hủy được gọi khi một đối tượng hủy . Thông thường, đó là khi kịch bản kết thúc.

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

Trình tạo là các hàm lớp đặc biệt thực hiện khởi tạo mọi đối tượng . Trình biên dịch gọi Trình xây dựng bất cứ khi nào một đối tượng được tạo. Trình xây dựng khởi tạo giá trị cho các thành viên đối tượng sau khi lưu trữ được phân bổ cho đối tượng. Mặt khác, Destructor được sử dụng để hủy đối tượng lớp.

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 (__).

Có bao nhiêu loại constructor trong PHP?

Hàm tạo có thể có hoặc không có đối số . Hàm tạo có đối số được gọi là hàm tạo được tham số hóa và hàm tạo không có đối số được gọi là hàm tạo không có đối số.