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

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 Employee
52,
class Employee
53 hoặc
class Employee
54 đượ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 Employee
52, but many object person could be the value of this class -
class Employee
56,
class Employee
57,
class Employee
58, 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 Employee
59,
class Employee
60 và
class Employee
61. 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 Employee
62 để 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 Employee
63 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

9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9

7
class Employee
1
class Employee
2
class Employee
3
2
5
class Employee
5
class Employee
6
class Employee
7
class Employee
8

7
3
0
3
1
3
2
2
5
3
4
3
5
3
6
3
7

7
3
9
{
0
{
1
2
5
{
3
{
4
{
5________17

Câu lệnh

class Employee
64 trong dòng đầu tiên định nghĩa lớp
class Employee
63. 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 PHP

Bạ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 Employee
66,
class Employee
67 và
class Employee
60. 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 Employee
69, 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 PHP

Hà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 Employee
70

Các phương thức cho các lớp PHP

Chú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 Employee
71, 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 Employee
63

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 Employee
63 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
4
0_______16_______
4
4
3
5
18_______5

0
4
7

2
{
6

Bạn cần sử dụng từ khóa

class Employee
74 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 Employee
70 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 Employee
63 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 Employee
77. Như chúng ta đã thảo luận trước đó, phương thức
class Employee
70 đượ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 Employee
77 để 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

0
5
0

2

4
5
3

6

8
5
6
2
0_______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ó

Khởi tạo php bên trong lớp
Khởi tạo php bên trong lớp
Khởi tạo php bên trong lớp

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 Employee
63. Thật thú vị khi lưu ý rằng đối tượng chính
class Employee
77 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 Employee
82,
class Employee
69 hoặc
class Employee
84

Truy cập công cộng

Khi 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

00
5

0

03

2

7

4

07

6
2
5

8
{
4
2
0
2
2

14
2
4

16
2
6

18
2
7
{
6

Như bạn có thể thấy trong ví dụ trên, chúng tôi đã khai báo thuộc tính

class Employee
59 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ân

Khi bạn tuyên bố một thuộc tính hoặc một phương thức là

class Employee
69, 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

28
5

0

03

2

7

4

07

6
2
5

8
2
0

40
2
2

7
2
4

44
2
6
2
5
2
7
{
4
2
9
class Employee
1

14
class Employee
3

53
class Employee
5

55
class Employee
6

18
class Employee
8
{
6

Nế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 Employee
87. 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 Employee
88

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 Employee
84, 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ừa

Kế 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ế

Khởi tạo php bên trong lớp
Khởi tạo php bên trong lớp
Khởi tạo php bên trong lớp

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

67
5

69

0

2

03

4

7

6

07

8
2
5
2
0
2
2

40
2
4

7
2
6

44
2
7
2
5
2
9
class Employee
1

90
class Employee
3

7
class Employee
5

94
class Employee
6
2
5
class Employee
8
3
0

99
3
2

7
3
4

94
3
5
2
5
3
7
{
4
3
9
{
1
2
10
{
3
{
{
5
2
14________14_

Điều quan trọng cần lưu ý ở đây là lớp

class Employee
63 đã sử dụng từ khóa
class Employee
91 để kế thừa lớp
class Employee
52. Bây giờ, lớp
class Employee
63 có thể truy xuất tất cả các thuộc tính và phương thức của lớp
class Employee
52 đượ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 Employee
95 có thể truy xuất các phương thức
class Employee
96 và
class Employee
88 được định nghĩa trong lớp
class Employee
52 khi được công bố là công khai

Tiếp theo, chúng tôi đã truy xuất phương thức

class Employee
99 bằng phương thức
3
00 được xác định trong lớp
class Employee
63, vì nó được tuyên bố là được bảo vệ. Cuối cùng, đối tượng
class Employee
95 không thể truy xuất phương thức
3
03 của lớp
class Employee
52 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 Employee
95 để đặt thuộc tính
class Employee
60 của lớp
class Employee
52, như chúng ta đã làm theo phương thức
3
08 được định nghĩa trong lớp
class Employee
63, vì thuộc tính
class Employee
60 đượ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 Employee
12
3
{
4
class Employee
16
5

7

0
class Employee
20

2
2
5

4
{
4

6

8
class Employee
27
2
0
{
2
2
class Employee
16
2
4

7
2
6
class Employee
35
2
7
2
5
2
9
{
4
class Employee
1
class Employee
3
class Employee
42
class Employee
5
class Employee
44
class Employee
6
class Employee
8
class Employee
47
3
0
class Employee
49
3
2
{
6

Như bạn có thể thấy, chúng tôi đã thay đổi hành vi của phương thức

3
11 bằng cách ghi đè lên nó trong lớp
3
12. Đ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ết

Lậ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

  • Khởi tạo php bên trong lớp
    Khởi tạo php bên trong lớp
    Khởi tạo php bên trong lớp

    PHP

    Nguyên tắc cơ bản PHP

    Jeremy McPeak

  • Khởi tạo php bên trong lớp
    Khởi tạo php bên trong lớp
    Khởi tạo php bên trong lớp

    PHP

    Cơ bản về lập trình hướng đối tượng PHP

    Joost Van Veen

  • Khởi tạo php bên trong lớp
    Khởi tạo php bên trong lớp
    Khởi tạo php bên trong lớp

    OOP

    OOP trong PHP với các bài kiểm tra

    Patkos Csaba

  • Khởi tạo php bên trong lớp
    Khởi tạo php bên trong lớp
    Khởi tạo php bên trong lớp

    PHP

    Mẫu thiết kế PHP

    Jeremy McPeak

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ế