Làm cách nào để gọi hàm tạo siêu hạng trong PHP?
Bạn sẽ thấy các hàm tạo lớp hoạt động như thế nào trong PHP, điều gì xảy ra với tính kế thừa lớp và một tính năng mới của PHP 8 có tên là “xúc tiến đối số” Show
nội dung Trình xây dựng lớp PHP là gì?Trong lập trình hướng đối tượng, các đối tượng là các biến của một lớp cụ thể Ví dụ
Ở đây, $myCircle là một biến của lớp Circle Khi bạn tạo một đối tượng lớp, PHP sẽ xem xét định nghĩa lớp để tìm kiếm hàm tạo của lớp Hàm tạo của lớp là một phương thức lớp đặc biệt có tên __construct(). Phương thức này được thực thi ngay sau khi tạo một đối tượng của lớp đó Vì vậy, hãy thêm một hàm tạo vào lớp Circle của chúng ta
Hàm tạo của chúng tôi gán một số giá trị cho các thuộc tính của lớp Vì hàm tạo được thực thi ngay khi một đối tượng mới được tạo, nên các giá trị này sẽ là giá trị mặc định cho mọi đối tượng mới Bạn có thể thử và xem cho chính mình
Các nhà xây dựng không bị giới hạn trong việc thiết lập các thuộc tính của lớp. Họ cũng có thể gọi các phương thức lớp khác, thực thi các lệnh như tiếng vang, kết nối với cơ sở dữ liệu, v.v. Thông thường, bạn muốn sử dụng hàm tạo để
Ví dụ: đây là cách bạn có thể tạo một lớp bao bọc cơ sở dữ liệu tùy chỉnh tự động kết nối với cơ sở dữ liệu ngay khi bạn tạo một đối tượng mới
Danh sách đối số của hàm tạoCác hàm tạo của lớp hỗ trợ các đối số giống như bất kỳ phương thức thông thường nào Danh sách đối số của hàm tạo có thể bao gồm các đối số đã nhập, đối số có độ dài thay đổi và giá trị mặc định Ví dụ
Khi bạn tạo một đối tượng mới, bạn phải tuân theo các yêu cầu về danh sách đối số của hàm tạo lớp Ví dụ: bạn không thể tạo một đối tượng của lớp Circle mà không có đối số (vì đối số $radius là bắt buộc và không có giá trị mặc định) hoặc với một chuỗi làm đối số đầu tiên (vì nó phải là một kiểu int)
Lưu ý rằng hàm tạo của lớp không thể trả về bất kỳ giá trị nào Lý do là các hàm tạo có nghĩa là trả về đối tượng mới, vì vậy sẽ không có ý nghĩa gì khi trả lại bất kỳ thứ gì khác Constructor và kế thừa lớpBây giờ hãy xem cách các hàm tạo của lớp hoạt động với tính kế thừa của lớp Giả sử bạn có một lớp cha và một lớp con
Khi bạn tạo một đối tượng của lớp con, PHP sẽ thực thi hàm tạo của lớp con. Tuy nhiên, phương thức khởi tạo của lớp cha không được thực thi tự động
Như đã giải thích trong hướng dẫn kế thừa PHP này, nếu bạn muốn hàm tạo của lớp cha được thực thi, thì bạn cần gọi nó một cách rõ ràng từ hàm tạo của lớp con Như thế này
0
Hàm tạo của lớp con không cần có danh sách đối số tương thích với hàm tạo của lớp cha Nói cách khác, bạn có thể đặt bất kỳ danh sách đối số nào cho hàm tạo của lớp con, bất kể hàm tạo của lớp cha lấy đối số nào. các nhà xây dựng bị cấm. riêng tư và trừu tượngCó hai trường hợp khi bạn không thể gọi hàm tạo của lớp trường hợp đầu tiên. bạn không thể gọi một hàm tạo trừu tượng của một lớp trừu tượng, giống như bạn không thể gọi bất kỳ phương thức trừu tượng nào Ví dụ 1 2
Nhưng bạn có thể gọi một hàm tạo không trừu tượng từ lớp cha, ngay cả khi bản thân lớp đó là trừu tượng 3
trường hợp thứ hai. nếu bạn đặt khả năng hiển thị của hàm tạo thành được bảo vệ hoặc riêng tư, thì bạn không thể tạo đối tượng của lớp đó 4_______1_______5
Bây giờ, bạn có thể tự hỏi. tại sao bạn muốn ngăn các đối tượng được tạo? Chà, trong một số trường hợp, bạn muốn chỉ có thể tạo các đối tượng lớp từ chính lớp đó bằng cách sử dụng các phương thức tĩnh Một trong những trường hợp như vậy là khi bạn muốn mô phỏng nhiều hàm tạo. Nếu bạn muốn biết thêm, bạn có thể tìm thêm chi tiết tại đây (trong phần Phương pháp tạo tĩnh) Quảng cáo đối số PHP 8PHP 8 đã giới thiệu một cách mới để tự động xác định các thuộc tính của lớp trực tiếp từ hàm tạo Đây là ý tưởng Đối với mỗi đối số hàm tạo, bạn có thể tự động biến đối số đó thành thuộc tính lớp bằng cách thêm công cụ sửa đổi khả năng hiển thị Tính năng này được gọi là khuyến mãi nhà xây dựng Ví dụ 6
Các đối số $radius và $color có công cụ sửa đổi khả năng hiển thị công khai, do đó chúng được hàm tạo tự động chuyển thành thuộc tính lớp công khai Bạn cũng có thể xác định các đối số được bảo vệ và riêng tư và chúng sẽ lần lượt được chuyển thành các thuộc tính được bảo vệ và riêng tư Khi bạn sử dụng cú pháp này, bạn không cần tạo các thuộc tính một cách rõ ràng trong lớp Mặt khác, đối số $thickness không có công cụ sửa đổi khả năng hiển thị trong danh sách đối số. Do đó, bạn cần định nghĩa nó một cách rõ ràng trong lớp Phần kết luậnTrong hướng dẫn này, bạn đã học cách thức hoạt động của hàm tạo lớp PHP Chúng ta đã xem xét danh sách đối số của hàm tạo, quy tắc kế thừa lớp và hai trường hợp khi bạn không thể gọi trực tiếp hàm tạo của lớp Làm cách nào để gọi một siêu hàm tạo trong PHP?Để chạy hàm tạo cha, gọi hàm cha. Cần có __construct() bên trong hàm tạo con . Nếu con không định nghĩa hàm tạo thì nó có thể được kế thừa từ lớp cha giống như một phương thức của lớp bình thường (nếu nó không được khai báo là riêng tư).
Làm cách nào để gọi phương thức lớp mở rộng trong PHP?lớp một { var $b; . } }
Làm cách nào để gọi 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 (__).
Siêu từ khóa trong PHP là gì?Từ khóa super được dùng để gọi hàm tạo của lớp cha nhằm truy cập các thuộc tính và phương thức của lớp cha . Mẹo. Để hiểu rõ hơn về khái niệm "kế thừa" (lớp cha và lớp con), hãy đọc Hướng dẫn về lớp JavaScript của chúng tôi. |