Khởi tạo php bên trong lớp
Trong bài viết này, chúng ta sẽ tìm hiểu những điều cơ bản về lập trình hướng đối tượng trong PHP. Chúng ta sẽ bắt đầu với phần giới thiệu về các lớp và đối tượng và chúng ta sẽ 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, 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ễ dàng duy trì và có thể mở rộng trong thời gian dài. Trong thế giới của OOP, 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 (đối tượng). Trong khi thiết lập 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 ngược lại với lập trình thủ tục (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ó khái niệm về "lớp", được sử dụng để mô hình hóa hoặc ánh xạ một thực thể trong thế giới thực sang một mẫu dữ liệu (thuộc tính - thuộc tính) và chức năng (phương thức - phương thức). Một "đối tượng" là giá trị của một lớp và bạn có thể tạo nhiều giá trị của cùng một lớp. Ví dụ. has one class single class Employee52, but many object person could be the value of this class - class Employee56, class Employee57, class Employee58, v. v Định nghĩa các thuộc tính class - property. Ví dụ. đối với hạng 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ó giá trị riêng cho các thuộc tính đó Bạn 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 các đối tượng thuộc tính và thực hiện các thao tác trên các đối tượng. Ví dụ, bạn có thể định nghĩa một phương thức class Employee62 để lưu đối tượng thông tin vào cơ sở dữ liệu Lớp trong 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 tôi sẽ thảo luận về khung 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à thông qua ví dụ. Vì vậy, hãy xem lớp class Employee63 trong đoạn trích sau, đại diện cho nhân viên thực tế 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 trong dòng đầu tiên định nghĩa 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 hàm và các lớp phương thức khác Thuộc tính class trong PHPBạn có thể nghĩ các thuộc tính của lớp là 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 của - class Employee66, class Employee67 và class Employee60. Trong đa số trường hợp, các thuộc tính của lớp được truy xuất 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 xuất từ bên trong lớp. Đây là mức truy xuất an toàn nhất cho các thuộc tính. Chúng tôi sẽ thảo luận về các cấp truy xuất khác nhau cho các thuộc tính và phương thức của lớp sau trong bài viết này Constructor cho các lớp PHPHàm khởi tạo là một lớp phương thức đặc biệt được gọi khi bạn khởi tạo một đối tượng. Chúng ta sẽ xem xét 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 một hàm tạo hàm được sử dụng để khởi tạo các thuộc tính đối tượng khi đối tượng được tạo ra Bạn có thể xác định hàm tạo hàm bằng cách định nghĩa phương thức class Employee70 Các phương thức cho các lớp PHPChúng ta có thể nghĩ về các phương thức của lớp là các hàm thực hiện các công 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 tôi được sử dụng để truy xuất và thao tác các đối tượng thuộc tính và thực hiện các hoạt động liên quan Trong ví dụ trên, chúng tôi đã xác định phương thức class Employee71, nó trả về họ được liên kết với đối tượng Vì vậy, một giới thiệu rút gọn về lớp cấu trúc trong PHP. Trong phần tiếp theo, chúng tôi sẽ xem cách khởi tạo các đối tượng của lớp class Employee63 Một đố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 động nó và kết quả cuối cùng là một đối tượng. Vì vậy, chúng ta có thể coi một lớp học 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 trong 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 bạn muốn khởi tạo một đối tượng của bất kỳ lớp nào giống với tên lớp của nó và bạn sẽ nhận lại một giá trị đố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ố, bạn cần truyền các đối số đó khi bạn khởi tạo một đối tượng. Trong trường hợp của chúng tôi, hàm tạo hàm của lớp class Employee63 yêu cầu ba đối số và do đó chúng tôi đã vượt qua các đối số này khi chúng tôi 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 là tự động khi đối tượng được khởi động Tiếp theo, chúng tôi đã gọi các lớp phương thức trên đối tượng class Employee77 để 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ư được hiển thị 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 tượng hình ảnh của lớp Nhân viên và một số trường hợp 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 ra các đối tượng có cấu trúc Encapsulation (tính đóng gói)Trong 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 đối tượng chính class Employee77 kết hợp các thuộc tính và phương thức của lớp. Nói cách khác, đối tượng này ẩn đi những chi tiết đó từ phần còn lại của chương trình. Trong thế giới OOP, điều này được gọi là gói đóng gói (đóng 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 xuất vào các thuộc tính hoặc phương thức xác định nhất của đối tượng. Và điều đó đã đưa chúng ta đến một chủ đề khác để thảo luận. access level - output level Access Levels (mức độ truy xuất)Khi bạn định nghĩa một thuộc tính hoặc một phương thức trong một lớp học, bạn có thể khai báo rằng nó có một trong ba cấp truy xuất này, 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 xuất từ bất kỳ nơi nào bên ngoài lớp. Giá trị của một thuộc tính công cộng có thể được sửa đổi từ bất kỳ nơi nào trong mã của bạn Hãy xem xét một ví dụ để hiểu mức độ truy xuất 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 tôi đã khai báo thuộc tính class Employee59 là công khai. Do đó, bạn có thể đặt nó từ bất kỳ nơi nào bên ngoài lớp, như đã thực hiện ở đây truy cập cá nhânKhi bạn tuyên bố một thuộc tính hoặc một phương thức là class Employee69, nó chỉ có thể được truy xuất 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à xem xé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 định mức truy xuất riêng 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 xuất một tài sản riêng 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 đánh giá giá trị của thuộc tính private bằng phương thức setter, vì chúng ta đã sử dụng phương thức class Employee88 Có nhiều lý do giải thích bạn có thể muốn làm cho một tài sản riêng. 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, giả sử hoặc hiển thị 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 được 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 xuất bởi cùng một lớp đã xác định nghĩa của nó và các lớp kế thừa lớp. Chúng ta sẽ thảo luận về kế thừa trong phần tiếp theo, vì vậy chúng ta sẽ quay lại cấp độ truy xuất được bảo vệ sau đó Kế thừa - kế thừaKế 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 nhau bằng cách mở rộng chúng. Lớp kế thừa được gọi là lớp cha và lớp kế thừa khác được 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 thừa hưởng các thuộc tính và phương thức của lớp cha Chúng ta hãy nhìn vào ảnh chụp màn hình sau đây để hiểu về khái niệm thừa kế Trong ví dụ trên, lớp Người là lớp cha và lớp Nhân viên mở rộng hoặc kế thừa lớp Người và do đó được gọi là lớp con Chúng ta hãy thử xem xét 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 Employee91 để kế thừa lớp class Employee52. Bây giờ, lớp class Employee63 có thể truy xuất tất cả các thuộc tính và phương thức của lớp class Employee52 được tuyên bố là công khai hoặc được bảo vệ. (Nó không thể truy xuất các thành viên được công bố là riêng tư) Trong ví dụ trên, đối tượng class Employee95 có thể truy xuất các phương thức class Employee96 và class Employee88 được định nghĩa trong lớp class Employee52 khi được công bố là công khai Tiếp theo, chúng tôi đã truy xuất phương thức class Employee99 bằng phương thức 300 được xác định trong lớp class Employee63, vì nó được tuyên bố là được bảo vệ. Cuối cùng, đối tượng class Employee95 không thể truy xuất phương thức 303 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 Employee95 để đặt thuộc tính class Employee60 của lớp class Employee52, như chúng ta đã làm theo phương thức 308 được định nghĩa trong lớp class Employee63, vì thuộc tính class Employee60 được tuyên bố là được bảo vệ Vì vậy, đó là một giới thiệu rút gọn về thừa kế. Nó giúp bạn giảm trùng lặp mã và làm giảm 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 các loại dữ liệu của chúng Ví dụ, trong hướng 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 đó. This is call is override phương thức. Hãy nhanh chóng xem qua một ví dụ thực tế để hiểu khái niệm về 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 tôi đã thay đổi hành vi của phương thức 311 bằng cách ghi đè lên nó trong lớp 312. Điều quan trọng là một thông điệp được định dạng khác nhau dựa trên loại đối tượng, cho dù đó là giá trị của lớp cha hay lớp con (Một số ngôn ngữ hướng đối tượng cũng có một kiểu quá tải phương thức cho phép bạn định nghĩa nhiều phương thức của lớp có cùng tên nhưng số lượng đối số khác nhau. Điều này không được hỗ trợ trực tiếp trong PHP, nhưng có một số cách giải quyết để đạt được chức năng tương tự) Tổng kếtLập trình hướng đối tượng là một chủ đề lớn và chúng chỉ ra mặt nổi của sự phức tạp của nó. Tôi hy vọng rằng hướng dẫn này đã giúp bạn bắt đầu với những điều cơ bản của OOP và thúc đẩy bạn tiếp tục và tìm hiểu các chủ đề OOP nâng cao hơn
Lập trình hướng đối tượng là một khía cạnh quan trọng trong việc 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 ngữ cảnh của PHP, chúng ta đã thảo luận về một vài khái niệm cơ bản về OOP và nhân cơ hội này để giới thiệu một số ví dụ thực tế |