Các đối tượng khác nhau trong PHP là gì?
Chúng ta sẽ bắt đầu với phần giới thiệu về lớp và đối tượng, đồng thời thảo luận về một số khái niệm nâng cao như tính kế thừa và tính đa hình trong nửa sau của bài viết này Show
Lập trình hướng đối tượng (OOP) là gì?Lập trình hướng đối tượng, thường được gọi là OOP, là một cách tiếp cận giúp bạn phát triển các ứng dụng phức tạp theo cách dễ bảo trì và mở rộng trong thời gian dài. Trong thế giới của OOP (để tạo đối tượng trong PHP), các thực thể trong thế giới thực như class Employee52, class Employee53 hoặc class Employee54 được coi là đối tượng. Trong lập trình hướng đối tượng, bạn tương tác với ứng dụng của mình bằng cách sử dụng các đối tượng. Điều này trái ngược với lập trình thủ tục, nơi bạn chủ yếu tương tác với các hàm và biến toàn cục Trong OOP, có một khái niệm về "lớp", được sử dụng để lập mô hình hoặc ánh xạ một thực thể trong thế giới thực tới một mẫu dữ liệu (thuộc tính) và chức năng (phương thức). Một "đối tượng" là một thể hiện của một lớp và bạn có thể tạo nhiều thể hiện của cùng một lớp. Ví dụ, có một lớp duy nhất class Employee52, nhưng nhiều đối tượng người có thể là thể hiện của lớp này— class Employee56, class Employee57, class Employee58, v.v. Lớp định nghĩa các thuộc tính. Ví dụ: đối với lớp Người, chúng ta có thể có class Employee59, class Employee60, và class Employee61. Sau đó, mỗi đối tượng người sẽ có các giá trị riêng cho các thuộc tính đó. Bạn cũng có thể định nghĩa các phương thức trong lớp cho phép bạn thao tác các giá trị của thuộc tính đối tượng và thực hiện các thao tác trên đối tượng. Ví dụ, bạn có thể định nghĩa một phương thức class Employee62 để lưu thông tin đối tượng vào cơ sở dữ liệu Hãy tiếp tục tìm hiểu cách tạo các đối tượng trong PHP Lớp PHP là gì?Đầu tiên chúng ta cần hiểu các lớp PHP là gì. Một lớp là một khuôn mẫu đại diện cho một thực thể trong thế giới thực và nó định nghĩa các thuộc tính và phương thức của thực thể đó. Trong phần này, chúng ta sẽ thảo luận về giải phẫu cơ bản của một lớp PHP điển hình Cách tốt nhất để hiểu các khái niệm mới là với một ví dụ. Vì vậy, hãy xem lớp class Employee63 trong đoạn mã sau, đại diện cho thực thể nhân viên 1
2 class Employee 3 {
4 private $first_name; 5 private $last_name;
0
1
2
3
4
5
6
7
8
920 21 22 23 24 25 26 27 28 29
7class Employee1 class Employee2 class Employee3 25 class Employee5 class Employee6 class Employee7 class Employee8
730 31 32 25 34 35 36 37
739 {
0{
125 {
3{
4{
5________17 Câu lệnh class Employee64 ở dòng đầu tiên xác định lớp class Employee63. Sau đó, chúng ta tiếp tục khai báo các thuộc tính, hàm tạo và các phương thức khác của lớp Thuộc tính lớp trong PHPBạn có thể coi các thuộc tính của lớp như các biến được sử dụng để chứa thông tin về đối tượng. Trong ví dụ trên, chúng tôi đã xác định ba thuộc tính—_______0_______66, class Employee67 và class Employee60. Trong hầu hết các trường hợp, các thuộc tính của lớp được truy cập thông qua các đối tượng được khởi tạo Các thuộc tính này là class Employee69, có nghĩa là chúng chỉ có thể được truy cập từ bên trong lớp trong PHP. Đây là cấp độ truy cập an toàn nhất cho tài sản. Chúng ta sẽ thảo luận về các mức truy cập khác nhau đối với các thuộc tính và phương thức của lớp trong PHP ở phần sau của bài viết này Trình xây dựng cho các lớp PHPHàm tạo là một phương thức lớp đặc biệt được gọi tự động khi bạn khởi tạo một đối tượng. Chúng ta sẽ xem cách khởi tạo các đối tượng trong vài phần tiếp theo, nhưng bây giờ bạn chỉ cần biết rằng hàm tạo được sử dụng để khởi tạo các thuộc tính của đối tượng khi đối tượng được tạo Bạn có thể xác định hàm tạo bằng cách xác định phương thức class Employee70 Các phương thức cho các lớp PHPChúng ta có thể coi các phương thức lớp trong PHP là các hàm thực hiện các hành động cụ thể được liên kết với các đối tượng. Trong hầu hết các trường hợp, chúng được sử dụng để truy cập và thao tác các thuộc tính của đối tượng và thực hiện các thao tác liên quan Trong ví dụ trên, chúng ta đã định nghĩa phương thức class Employee71, phương thức này trả về họ được liên kết với đối tượng. Vì vậy, đó là phần giới thiệu ngắn gọn về cấu trúc lớp trong PHP. Trong phần tiếp theo, chúng ta sẽ xem cách khởi tạo các đối tượng của lớp class Employee63 Đối tượng trong PHP là gì?Trong phần trước, chúng ta đã thảo luận về cấu trúc cơ bản của một lớp trong PHP. Bây giờ, khi bạn muốn sử dụng một lớp, bạn cần khởi tạo nó và kết quả cuối cùng là một đối tượng. Vì vậy, chúng ta có thể nghĩ về một lớp như một bản thiết kế và một đối tượng là một thứ thực tế mà bạn có thể làm việc với Trong ngữ cảnh của lớp class Employee63 mà chúng ta vừa tạo ở phần trước, hãy xem cách khởi tạo một đối tượng của lớp đó 1
2 40_______16_______ 4 43 518_______5
047
2{
6Bạn cần sử dụng từ khóa class Employee74 khi muốn khởi tạo một đối tượng của bất kỳ lớp nào cùng với tên lớp của nó, và bạn sẽ nhận được một thể hiện đối tượng mới của lớp đó Nếu một lớp đã định nghĩa phương thức class Employee70 và nó yêu cầu các đối số, thì bạn cần truyền các đối số đó khi khởi tạo một đối tượng. Trong trường hợp của chúng ta, phương thức khởi tạo của lớp class Employee63 yêu cầu ba đối số, và do đó chúng ta đã chuyển những đối số này khi chúng ta tạo đối tượng class Employee77. Như chúng ta đã thảo luận trước đó, phương thức class Employee70 được gọi tự động khi đối tượng được khởi tạo Tiếp theo, chúng ta đã gọi các phương thức lớp trên đối tượng class Employee77 để in thông tin được khởi tạo trong quá trình tạo đối tượng. Tất nhiên, bạn có thể tạo nhiều đối tượng của cùng một lớp, như trong đoạn mã sau 1
2 private $first_name;3_______16__________ 4 private $first_name;6 5___ private $first_name;8
050
2
453
6
856 20_______20_______8_______14_______2_______ 21_______4 Hình ảnh sau đây là biểu diễn đồ họa của lớp Nhân viên và một số thể hiện của nó Nói một cách đơn giản, một lớp là một bản thiết kế mà bạn có thể sử dụng để tạo các đối tượng có cấu trúc đóng góiTrong phần trước, chúng ta đã thảo luận về cách khởi tạo các đối tượng của lớp class Employee63. Thật thú vị khi lưu ý rằng bản thân đối tượng class Employee77 bao bọc các thuộc tính và phương thức của lớp. Nói cách khác, nó ẩn những chi tiết đó khỏi phần còn lại của chương trình. Trong thế giới của OOP, điều này được gọi là đóng gói dữ liệu Đóng gói là một khía cạnh quan trọng của OOP cho phép bạn hạn chế quyền truy cập vào các thuộc tính hoặc phương thức nhất định của đối tượng. Và điều đó đưa chúng ta đến một chủ đề khác để thảo luận. cấp độ truy cập Cấp truy cậpKhi bạn định nghĩa một thuộc tính hoặc một phương thức trong một lớp, bạn có thể khai báo nó có một trong ba mức truy cập sau— class Employee82, class Employee69 hoặc class Employee84 Truy cập công cộngKhi bạn khai báo một thuộc tính hoặc một phương thức là công khai, nó có thể được truy cập từ bất kỳ đâu bên ngoài lớp. Giá trị của thuộc tính công cộng có thể được sửa đổi từ bất kỳ đâu trong mã của bạn Hãy xem một ví dụ để hiểu cấp truy cập công khai 1
2 private $last_name;6 3 {
4
005
0
03
2
7
4
07
625
8{
420 22
1424
1626
1827 {
6Như bạn có thể thấy trong ví dụ trên, chúng ta đã khai báo thuộc tính class Employee59 là public. Do đó, bạn có thể đặt nó từ bất kỳ đâu bên ngoài lớp, như chúng ta đã làm ở đây truy cập cá nhânKhi bạn khai báo một thuộc tính hoặc một phương thức là class Employee69, nó chỉ có thể được truy cập từ bên trong lớp. Điều này có nghĩa là bạn cần xác định các phương thức getter và setter để lấy và đặt giá trị của thuộc tính đó Một lần nữa, hãy xem lại ví dụ trước để hiểu cấp độ truy cập riêng tư 1
2 private $last_name;6 3 {
4
285
0
03
2
7
4
07
625
820
4022
724
4426 25 27 {
429 class Employee1
14class Employee3
53class Employee5
55class Employee6
18class Employee8 {
6Nếu bạn thử truy cập một thuộc tính riêng tư từ bên ngoài lớp, nó sẽ gây ra lỗi nghiêm trọng class Employee87. Vì vậy, bạn cần đặt giá trị của thuộc tính riêng bằng phương thức setter, giống như chúng ta đã làm bằng cách sử dụng phương thức class Employee88 Có những lý do chính đáng khiến bạn có thể muốn đặt một tài sản ở chế độ riêng tư. Ví dụ: có lẽ nên thực hiện một số hành động (cập nhật cơ sở dữ liệu, hoặc kết xuất lại một mẫu) nếu thuộc tính đó thay đổi. Trong trường hợp đó, bạn có thể định nghĩa một phương thức setter và xử lý bất kỳ logic đặc biệt nào khi thuộc tính bị thay đổi Truy cập được bảo vệCuối cùng, khi bạn khai báo một thuộc tính hoặc một phương thức là class Employee84, nó có thể được truy cập bởi cùng một lớp đã định nghĩa nó và các lớp kế thừa lớp đó. Chúng ta sẽ thảo luận về tính kế thừa trong phần tiếp theo, vì vậy chúng ta sẽ quay lại mức truy cập được bảo vệ sau Di sảnKế thừa là một khía cạnh quan trọng của mô hình lập trình hướng đối tượng, cho phép bạn kế thừa các thuộc tính và phương thức của các lớp khác bằng cách mở rộng chúng. Lớp được kế thừa gọi là lớp cha, lớp kế thừa lớp kia gọi là lớp con. Khi bạn khởi tạo một đối tượng của lớp con, nó cũng sẽ kế thừa các thuộc tính và phương thức của lớp cha Hãy xem ảnh chụp màn hình sau đây để hiểu khái niệm thừa kế Trong ví dụ trên, lớp class Employee52 là lớp cha và lớp class Employee63 mở rộng hoặc kế thừa lớp Person và do đó được gọi là lớp con Hãy thử xem qua một ví dụ thực tế để hiểu cách thức hoạt động của nó 1
2 private $last_name;6 3 {
4
675
69
0
2
03
4
7
6
07
825 20 22
4024
726
4427 25 29 class Employee1
90class Employee3
7class Employee5
94class Employee6 25 class Employee8 30
9932
734
9435 25 37 {
439 {
1210 {
3{
{
5214________14_ Điều quan trọng cần lưu ý ở đây là lớp class Employee63 đã sử dụng từ khóa class Employee93 để kế thừa lớp class Employee52. Bây giờ, lớp class Employee63 có thể truy cập tất cả các thuộc tính và phương thức của lớp class Employee52 được khai báo là public hoặc protected. (Không thể truy cập các thành viên được khai báo là riêng tư. ) Trong ví dụ trên, đối tượng class Employee97 có thể truy cập các phương thức class Employee98 và class Employee88 được định nghĩa trong lớp class Employee52 vì chúng được khai báo là public Tiếp theo, chúng ta đã truy cập phương thức 301 bằng cách sử dụng phương thức 302 được định nghĩa trong lớp class Employee63, vì nó được khai báo là được bảo vệ. Cuối cùng, đối tượng class Employee97 không thể truy cập phương thức 305 của lớp class Employee52 vì nó được khai báo là riêng tư Mặt khác, bạn có thể sử dụng đối tượng class Employee97 để thiết lập thuộc tính class Employee60 của lớp class Employee52, như chúng ta đã làm trong phương thức 310 được định nghĩa trong lớp class Employee63, vì thuộc tính class Employee60 được khai báo là được bảo vệ Vì vậy, đó là một giới thiệu ngắn gọn về thừa kế. Nó giúp bạn giảm trùng lặp mã và do đó khuyến khích khả năng sử dụng lại mã đa hìnhĐa hình là một khái niệm quan trọng khác trong thế giới lập trình hướng đối tượng, đề cập đến khả năng xử lý các đối tượng khác nhau dựa trên kiểu dữ liệu của chúng Ví dụ, trong ngữ cảnh thừa kế, nếu lớp con muốn thay đổi hành vi của phương thức của lớp cha, nó có thể ghi đè phương thức đó. Điều này được gọi là ghi đè phương thức. Hãy xem nhanh một ví dụ thực tế để hiểu khái niệm ghi đè phương thức 1
2 class Employee12 3 {
4 class Employee16 5
7
0class Employee20
225
4{
4
6
8class Employee27 20 {
22 class Employee16 24
726 class Employee35 27 25 29 {
4class Employee1 class Employee3 class Employee42 class Employee5 class Employee44 class Employee6 class Employee8 class Employee47 30 class Employee49 32 {
6Như bạn có thể thấy, chúng ta đã thay đổi hành vi của phương thức 313 bằng cách ghi đè nó trong lớp 314. Điều quan trọng là một thông báo được định dạng khác nhau dựa trên loại đối tượng, cho dù đó là một thể hiện của lớp cha hay lớp con Ghi chú. Một số ngôn ngữ hướng đối tượng cũng có một loại nạp chồng phương thức cho phép bạn định nghĩa nhiều phương thức lớp có cùng tên nhưng khác số lượng đối số. Điều này không được hỗ trợ trực tiếp trong PHP, nhưng có một vài cách giải quyết để đạt được chức năng tương tự Phần kết luậnBây giờ bạn đã biết những kiến thức cơ bản về lập trình hướng đối tượng sử dụng các lớp PHP. Lập trình hướng đối tượng là một khía cạnh quan trọng trong phát triển ứng dụng, bất kể bạn đang làm việc với công nghệ nào. Hôm nay, trong bối cảnh PHP, chúng ta đã thảo luận về một số khái niệm cơ bản về OOP và chúng tôi cũng nhân cơ hội này giới thiệu một số ví dụ thực tế Các đối tượng trong PHP là gì?Đối tượng là một thể hiện riêng lẻ của cấu trúc dữ liệu được định nghĩa bởi một lớp . Chúng tôi định nghĩa một lớp một lần và sau đó tạo nhiều đối tượng thuộc về nó. Các đối tượng còn được gọi là thể hiện.
Loại đối tượng trong PHP là gì?Trong PHP, Đối tượng là một kiểu dữ liệu ghép (cùng với mảng). Giá trị của nhiều loại có thể được lưu trữ cùng nhau trong một biến duy nhất. Đối tượng là một thể hiện của lớp dựng sẵn hoặc do người dùng định nghĩa. Ngoài các thuộc tính, lớp xác định chức năng liên quan đến dữ liệu.
Các đối tượng PHP giải thích bằng ví dụ là gì?Các đối tượng được định nghĩa từ các lớp trong Lập trình hướng đối tượng như PHP . Khi một lớp được định nghĩa, chúng ta có thể tạo ra nhiều đối tượng bên ngoài lớp. Ví dụ Class Car được định nghĩa thì Mercedes, BMW, Skoda đều là đối tượng của Class Car. Một lớp là một bản thiết kế của một đối tượng.
Bạn có thể tạo bao nhiêu đối tượng trong PHP?Không có giới hạn (thực tế phù hợp) cho số lượng đối tượng . Miễn là có đủ RAM vật lý, bạn luôn có thể tăng giới hạn bộ nhớ. Tuy nhiên, từ quan điểm kiến trúc, có thể rất không khôn ngoan nếu giữ tất cả những thứ này trong RAM trong toàn bộ thời gian thực thi, khi nó thực sự không cần thiết. |