Hướng dẫn php oop real time example - php oop ví dụ thời gian thực

Sửa đổi lần cuối ngày 20 tháng 10 năm 2022

Trong bài viết này, chúng tôi nói về lập trình hướng đối tượng trong PHP.

$ php -v
php -v
PHP 8.1.2 (cli) (built: Aug  8 2022 07:28:23) (NTS)
...

Chúng tôi sử dụng Php phiên bản 8.1.2.

Có ba mô hình lập trình được sử dụng rộng rãi ở đó: thủ tục, chức năng và hướng đối tượng. PHP hỗ trợ cả lập trình thủ tục và hướng đối tượng.

Lập trình hướng đối tượng (OOP) là một mô hình lập trình sử dụng các đối tượng và các tương tác của chúng để thiết kế các ứng dụng và chương trình máy tính.

Các khái niệm lập trình cơ bản trong OOP là:

  • Trừu tượng hóa
  • Đa hình
  • Đóng gói
  • Di sản

Trừu tượng là đơn giản hóa thực tế phức tạp bằng cách mô hình hóa các lớp phù hợp với vấn đề. Đa hình là quá trình sử dụng toán tử hoặc chức năng theo các cách khác nhau cho đầu vào dữ liệu khác nhau. Đóng gói ẩn các chi tiết thực hiện của một lớp từ các đối tượng khác. Kế thừa là một cách để hình thành các lớp mới bằng cách sử dụng các lớp đã được xác định.

Đối tượng PHP

Đối tượng là các khối xây dựng cơ bản của chương trình PHP OOP. Một đối tượng là sự kết hợp giữa dữ liệu và phương pháp. Trong một chương trình OOP, chúng tôi tạo các đối tượng. Những đối tượng này giao tiếp cùng nhau thông qua các phương pháp. Mỗi đối tượng có thể nhận tin nhắn, gửi tin nhắn và xử lý dữ liệu.

Có hai bước trong việc tạo một đối tượng. Đầu tiên, chúng tôi tạo ra một lớp học. Một lớp là một mẫu cho một đối tượng. Đó là một kế hoạch chi tiết mô tả trạng thái và hành vi mà các đối tượng của lớp đều chia sẻ. Một lớp có thể được sử dụng để tạo ra nhiều đối tượng. Các đối tượng được tạo trong thời gian chạy từ một lớp được gọi là các trường hợp của lớp cụ thể đó.

simple_class.php

Trong ví dụ đầu tiên của chúng tôi, chúng tôi tạo ra một đối tượng đơn giản.

class Simple {}

Đây là một định nghĩa lớp đơn giản. Cơ thể của mẫu trống rỗng. Nó không có bất kỳ dữ liệu hoặc phương pháp.

$object = new Simple();

Chúng tôi tạo một thể hiện mới của lớp

$p2 = new Person();
$p2->name = "Beky";
1. Đối với điều này, chúng tôi có từ khóa
$p2 = new Person();
$p2->name = "Beky";
2. Biến
$p2 = new Person();
$p2->name = "Beky";
3 là tay cầm cho đối tượng được tạo.

print_r($object);
echo gettype($object), "\n";

Chúng tôi sử dụng chức năng

$p2 = new Person();
$p2->name = "Beky";
4 để lấy thông tin về đối tượng và hàm
$p2 = new Person();
$p2->name = "Beky";
5 để có được loại biến.

$ php simple_class.php
Simple Object
(
)
object

Chúng tôi không nhận được nhiều thông tin, vì định nghĩa lớp trống. Loại biến là

$p2 = new Person();
$p2->name = "Beky";
6.

Thuộc tính đối tượng PHP

Các thuộc tính đối tượng là dữ liệu được gói trong một thể hiện của một lớp. Các thuộc tính đối tượng được gọi là biến thể hiện hoặc trường thành viên. Một biến thể hiện là một biến được xác định trong một lớp, trong đó mỗi đối tượng trong lớp có một bản sao riêng.

member_fields.php

name = "Jane";

$p2 = new Person();
$p2->name = "Beky";

echo $p1->name . "\n";
echo $p2->name . "\n";

Trong tập lệnh PHP trên, chúng tôi có lớp

$p2 = new Person();
$p2->name = "Beky";
7 với một trường thành viên.

$p1 = new Person();
$p1->name = "Jane";

Chúng tôi tạo một thể hiện của lớp người và đặt biến

$p2 = new Person();
$p2->name = "Beky";
8 thành "Jane". Chúng tôi sử dụng toán tử -> để truy cập các thuộc tính của các đối tượng.

$p2 = new Person();
$p2->name = "Beky";

Chúng tôi tạo ra một trường hợp khác của lớp người. Ở đây chúng tôi đặt biến thành "beky".

echo $p1->name . "\n";
echo $p2->name . "\n";

Chúng tôi in nội dung của các biến vào bảng điều khiển.

0

Chúng tôi thấy đầu ra của tập lệnh. Mỗi phiên bản của lớp

$p2 = new Person();
$p2->name = "Beky";
7 có một bản sao riêng của trường thành viên
$p2 = new Person();
$p2->name = "Beky";
8.

Phương pháp PHP

Phương pháp là các chức năng được xác định bên trong cơ thể của một lớp. Chúng được sử dụng để thực hiện các hoạt động với các thuộc tính của các đối tượng của chúng tôi. Phương pháp rất cần thiết trong khái niệm đóng gói của mô hình OOP. Ví dụ: chúng ta có thể có phương thức

echo $p1->name . "\n";
echo $p2->name . "\n";
1 trong lớp AccessDatabase của chúng tôi. Chúng ta không cần phải được thông báo làm thế nào chính xác phương thức
echo $p1->name . "\n";
echo $p2->name . "\n";
1 kết nối với cơ sở dữ liệu. Chúng tôi chỉ biết rằng nó được sử dụng để kết nối với cơ sở dữ liệu. Điều này rất cần thiết trong việc phân chia trách nhiệm trong lập trình, đặc biệt là trong các ứng dụng lớn.

circle.php

1

Trong ví dụ mã, chúng tôi có một lớp

echo $p1->name . "\n";
echo $p2->name . "\n";
3. Chúng tôi xác định hai phương pháp.

2

Chúng tôi có một lĩnh vực thành viên. Đó là bán kính của vòng tròn. Từ khóa

echo $p1->name . "\n";
echo $p2->name . "\n";
4 là một trình xác định truy cập. Nó nói rằng biến có thể truy cập đầy đủ từ thế giới bên ngoài.

3

Đây là phương pháp

echo $p1->name . "\n";
echo $p2->name . "\n";
5. Nó là một hàm PHP bình thường. Chúng tôi gọi các chức năng được xác định bên trong các phương thức lớp. Biến
echo $p1->name . "\n";
echo $p2->name . "\n";
6 là một biến đặc biệt mà chúng tôi sử dụng để truy cập các trường thành viên từ các phương thức.

4

Phương pháp

echo $p1->name . "\n";
echo $p2->name . "\n";
7 trả về khu vực của một vòng tròn.
echo $p1->name . "\n";
echo $p2->name . "\n";
8 là một hằng số tích hợp.

5

Bộ điều chỉnh Access Php

Trình sửa đổi truy cập đặt khả năng hiển thị của các phương thức và trường thành viên. PHP có ba sửa đổi truy cập:

echo $p1->name . "\n";
echo $p2->name . "\n";
4,
00 và 
01. Các thành viên 
echo $p1->name . "\n";
echo $p2->name . "\n";
4 có thể được truy cập từ bất cứ đâu. Các thành viên
00 chỉ có thể được truy cập trong chính lớp và các lớp được kế thừa và phụ huynh. Các thành viên 
01 chỉ có thể được truy cập bởi lớp xác định thành viên.

Truy cập các công cụ sửa đổi bảo vệ dữ liệu chống lại các sửa đổi tình cờ. Họ làm cho các chương trình mạnh mẽ hơn.

access1.php

6

Trong tập lệnh PHP trên, chúng tôi có hai trường thành viên; Một được tuyên bố công khai, một tư nhân khác.

7

Chúng tôi truy cập vào thành viên

$p2 = new Person();
$p2->name = "Beky";
8 từ thế giới bên ngoài. Theo thế giới bên ngoài, chúng tôi có nghĩa là 'không ở trong lớp'. Nó là OK, vì biến
$p2 = new Person();
$p2->name = "Beky";
8 được khai báo
echo $p1->name . "\n";
echo $p2->name . "\n";
4. Việc truy cập thành viên
08 là không thể. Công cụ sửa đổi 
01 cấm điều này. Nếu chúng ta giải phóng dòng mã, chúng ta sẽ nhận được 'lỗi gây tử vong: Không thể truy cập lỗi tài sản riêng :: $ Age'.

access2.php

8

Trong tập lệnh PHP này, chúng tôi có một lớp

10 mở rộng lớp 
11. Lớp 
11 có ba trường thành viên, tất cả đều có trình sửa đổi truy cập khác nhau. Thành viên 
13 không được kế thừa. Công cụ sửa đổi 
01 ngăn chặn điều này.

9

Phương pháp

15 có công cụ sửa đổi truy cập 
echo $p1->name . "\n";
echo $p2->name . "\n";
4. Điều này có nghĩa là, nó có thể được gọi bên ngoài môi trường lớp học.

class Simple {}
0

Các thành viên công khai và được bảo vệ được kế thừa, thành viên tư nhân thì không.

system.php

class Simple {}
1

Trong kịch bản này, chúng tôi có một lớp

17. Nó đưa ra một số thông tin hệ thống vào bảng điều khiển. Chúng tôi có hai chức năng tư nhân và một công khai. Các phương thức riêng tư chỉ ở đây cho hoạt động nội bộ của lớp 
17. Họ không có nghĩa là được gọi bên ngoài lớp.

class Simple {}
2

Chúng tôi tạo một thể hiện của lớp

17 và gọi phương thức 
20 có sẵn công khai. Phương pháp 
20 sử dụng nội bộ các phương thức riêng tư để thực hiện công việc của mình. Không đưa ra dòng mã cuối cùng mang lại lỗi.

Quá tải phương pháp PHP

Quá tải phương thức cho phép tạo một số phương thức có cùng tên khác nhau trong loại đầu vào.

Phương pháp quá tải tốt cho là gì? Thư viện QT4 đưa ra một ví dụ hay cho việc sử dụng. Lớp

22 có ba phương thức để vẽ một hình chữ nhật. Tên của họ là 
23 và các tham số của chúng khác nhau. Người ta có một tham chiếu đến một đối tượng hình chữ nhật điểm nổi, một đối tượng khác có một tham chiếu đến một đối tượng hình chữ nhật số nguyên và độ cuối cùng lấy bốn tham số, x, y, chiều rộng, chiều cao. Nếu ngôn ngữ C ++, là ngôn ngữ mà QT được phát triển, không có quá tải phương thức, người tạo thư viện sẽ phải đặt tên cho các phương thức như 
24, 
25, 
26. Giải pháp với quá tải phương pháp là thanh lịch hơn.

overloading1.php

class Simple {}
3

Đây là một phương pháp quá tải, chúng ta biết từ các ngôn ngữ như C#, Java hoặc C ++. Nhưng điều này không hoạt động trong PHP. Chạy ví dụ này, chúng tôi gặp lỗi sau: 'Lỗi nghiêm trọng: Không thể tái lập tổng :: getSum ()'. Các hàm PHP có thể lấy số biến tùy ý theo mặc định.

Để mô phỏng quá tải phương thức trong PHP, chúng tôi sử dụng hàm

27.

overloading2.php

class Simple {}
4

Lần này, kịch bản sẽ chạy.

class Simple {}
5

Hàm

27 trả về một mảng bao gồm danh sách đối số của hàm.

class Simple {}
6

Chúng tôi đi qua tất cả các thành viên của mảng và tính tổng.

class Simple {}
7

Chúng tôi gọi cùng một tên phương thức với số lượng đầu vào khác nhau.

class Simple {}
8

Chất xây dựng PHP

Một hàm tạo là một loại đặc biệt của một phương pháp. Nó được gọi tự động khi đối tượng được tạo. Mục đích của hàm tạo là bắt đầu trạng thái của đối tượng. Tên của hàm tạo trong PHP là

29 (với hai dấu gạch dưới).

constructor.php

class Simple {}
9

Chúng tôi có một lớp

30. Lớp này có một hàm tạo in thông báo vào bảng điều khiển.

$object = new Simple();
0

Đây là thời gian, khi đối tượng được tạo và hàm tạo được gọi. Chúng tôi nhận được một tin nhắn trong bảng điều khiển.

$object = new Simple();
1

Người xây dựng thường có lập luận.

constructor2.php

$object = new Simple();
2

Chúng tôi sửa đổi ví dụ trước một chút. Chúng tôi chuyển một giá trị cho hàm tạo.

$object = new Simple();
3

Đối số được thông qua được lưu trữ trong biến

31 cục bộ.

$object = new Simple();
4

Bây giờ chúng tôi có một thông điệp với một tiêu đề bài hát được in vào bảng điều khiển.

Trong ví dụ tiếp theo, chúng tôi bắt đầu các thành viên dữ liệu của lớp. Bắt đầu các biến là một công việc điển hình cho các hàm tạo.

friend.php

$object = new Simple();
5

Chúng tôi có một lớp

32 với các thành viên và phương thức dữ liệu.

$object = new Simple();
6

Chúng tôi có hai biến trong định nghĩa lớp. Từ khóa

01 là một công cụ sửa đổi truy cập. Đó là một hình thức đóng gói. Từ khóa 
01 là công cụ sửa đổi hạn chế nhất. Nó chỉ cho phép đối tượng trong câu hỏi để truy cập biến. Không có hậu duệ, không có đối tượng khác. Thông tin thêm về chủ đề này sau.

$object = new Simple();
7

Trong hàm tạo, chúng tôi bắt đầu hai thành viên dữ liệu. Biến

echo $p1->name . "\n";
echo $p2->name . "\n";
6 là một trình xử lý được sử dụng để tham chiếu các biến đối tượng.

$object = new Simple();
8

Chúng tôi tạo một đối tượng bạn với hai đối số. Sau đó, chúng tôi gọi phương thức

20 của đối tượng. Để gọi các phương thức đối tượng, chúng tôi sử dụng toán tử 
37.

$object = new Simple();
9

Hằng số lớp PHP

PHP cho phép tạo hằng số lớp. Những hằng số này không thuộc về một đối tượng cụ thể. Họ thuộc về lớp học. Theo quy ước, hằng số được viết bằng chữ hoa.

constants.php

print_r($object);
echo gettype($object), "\n";
0

Chúng tôi có một lớp toán với hằng số PI.

print_r($object);
echo gettype($object), "\n";
1

Từ khóa

38 được sử dụng để xác định hằng số.

print_r($object);
echo gettype($object), "\n";
2

Các hằng số lớp được truy cập từ bên trong các phương thức bằng cách sử dụng từ khóa

39 theo sau là hai dấu chấm câu.

print_r($object);
echo gettype($object), "\n";
3

Chúng tôi in hằng số

40 vào bảng điều khiển. Trong trường hợp đầu tiên, chúng tôi nhận được giá trị không đổi bằng cách tham khảo tên lớp, theo sau là hai dấu chấm và một tên không đổi. Lưu ý rằng không cần đối tượng để có được lớp không đổi. Trong trường hợp thứ hai, chúng tôi sử dụng phương thức đối tượng.

Php InstanceOf Từ khóa

Từ khóa

41 được sử dụng để xác định xem biến PHP có phải là đối tượng khởi tạo của một lớp nhất định hay không.

instanceof.php

print_r($object);
echo gettype($object), "\n";
4

Trong tập lệnh trên, chúng tôi có ba lớp:

42, 
43 và 
44. Chúng tôi đi qua mảng và in lớp cho mỗi giá trị mảng.

print_r($object);
echo gettype($object), "\n";
5

Chúng tôi tạo ra một mảng của các đối tượng này.

print_r($object);
echo gettype($object), "\n";
6

Chúng tôi xáo trộn mảng. Tại thời điểm này, chúng tôi không biết các loại lớp cho các giá trị của mảng.

print_r($object);
echo gettype($object), "\n";
7

Ở đây chúng tôi sử dụng từ khóa

41 để tìm ra loại lớp.

print_r($object);
echo gettype($object), "\n";
8

Phương pháp PHP __TOSTRING

Khi chúng tôi sử dụng từ khóa

46 hoặc 
47 với phiên bản đối tượng, phương thức đặc biệt 
48 được gọi là. Chúng tôi sẽ chứng minh điều này trong ví dụ sau.

tostring.php

print_r($object);
echo gettype($object), "\n";
9

Chúng tôi có một lớp CAT với phương pháp đặc biệt

48 được xác định.

$ php simple_class.php
Simple Object
(
)
object
0

Phương pháp in thông tin cơ bản về đối tượng.

$ php simple_class.php
Simple Object
(
)
object
1

Chúng tôi tạo hai đối tượng của lớp CAT.

$ php simple_class.php
Simple Object
(
)
object
2

Và chúng tôi sử dụng các từ khóa

46 hoặc 
47 trên chúng.

$ php simple_class.php
Simple Object
(
)
object
3

Kế thừa PHP

Việc thừa kế là một cách để hình thành các lớp mới bằng cách sử dụng các lớp đã được xác định. Các lớp mới được thành lập được gọi là các lớp dẫn xuất, các lớp mà chúng tôi có được được gọi là các lớp cơ sở. Lợi ích quan trọng của việc thừa kế là tái sử dụng mã và giảm độ phức tạp của một chương trình. Các lớp dẫn xuất (hậu duệ) ghi đè hoặc mở rộng chức năng của các lớp cơ sở (tổ tiên).

derived.php

$ php simple_class.php
Simple Object
(
)
object
4

Trong tập lệnh PHP này, chúng tôi có hai lớp: lớp

11 và lớp 
10. Lớp 
10 kế thừa từ lớp 
11.

$ php simple_class.php
Simple Object
(
)
object
5

Trong PHP, chúng tôi sử dụng từ khóa

56 để tạo quan hệ thừa kế.

$ php simple_class.php
Simple Object
(
)
object
6

Trong hàm tạo của lớp dẫn xuất, chúng tôi gọi hàm tạo cha mẹ. Chúng tôi sử dụng từ khóa

57, theo sau là hai dấu chấm và phương thức 
29. Các hàm tạo của các lớp cha phải được gọi là rõ ràng.

$ php simple_class.php
Simple Object
(
)
object
7

Chúng tôi khởi tạo cả các lớp

11 và 
10.

$ php simple_class.php
Simple Object
(
)
object
8

Một ví dụ phức tạp hơn sau.

inheritance.php

$ php simple_class.php
Simple Object
(
)
object
9

Chúng tôi đã sử dụng một số khái niệm mới ở đây. Trong ví dụ mã, chúng tôi có ba lớp:

61, 
62 và 
42. Lớp 
62 kế thừa từ lớp 
61. Lớp 
42 kế thừa từ lớp 
62. Các lớp kế thừa các phương thức và thành viên dữ liệu không được tuyên bố là riêng tư.

name = "Jane";

$p2 = new Person();
$p2->name = "Beky";

echo $p1->name . "\n";
echo $p2->name . "\n";
0

Lớp

61 được tuyên bố là 
69. Từ khóa 
69 cấm khởi tạo các lớp. Không có nhiều ý nghĩa để tạo ra một thể hiện của lớp 
61.

name = "Jane";

$p2 = new Person();
$p2->name = "Beky";

echo $p1->name . "\n";
echo $p2->name . "\n";
1

Thành viên dữ liệu

72 được tuyên bố là 
00. Những thành viên như vậy chỉ có thể được truy cập bởi các lớp xác định họ và con cháu của họ.

name = "Jane";

$p2 = new Person();
$p2->name = "Beky";

echo $p1->name . "\n";
echo $p2->name . "\n";
2

Lớp

62 cũng được tuyên bố là trừu tượng. Nó kế thừa từ lớp 
61. Đối với điều này, chúng tôi sử dụng từ khóa 
56. 
62 là một hậu duệ. Nó kế thừa các phương thức và biến của lớp cơ sở 
61.

name = "Jane";

$p2 = new Person();
$p2->name = "Beky";

echo $p1->name . "\n";
echo $p2->name . "\n";
3

Lớp

42 kế thừa từ lớp 
62. Nó thừa hưởng từ lớp 
62 và gián tiếp từ lớp 
61. Nó không được tuyên bố trừu tượng, có nghĩa là chúng ta có thể khởi tạo nó.

name = "Jane";

$p2 = new Person();
$p2->name = "Beky";

echo $p1->name . "\n";
echo $p2->name . "\n";
4

Trong hàm tạo của lớp

42, chúng tôi gọi hàm xây dựng cha mẹ bằng cách sử dụng từ khóa 
57, theo sau là hai dấu chấm câu và phương thức 
29. Các hàm tạo của các lớp cha phải được gọi là rõ ràng.

name = "Jane";

$p2 = new Person();
$p2->name = "Beky";

echo $p1->name . "\n";
echo $p2->name . "\n";
5

Chúng tôi tạo ra một con mèo mới: Cici, 4 tuổi. Sau đó, chúng tôi gọi các chức năng trên đối tượng CICI. Lưu ý việc sử dụng các phương thức không được tạo trong lớp

42, nhưng được kế thừa từ các lớp cha.

name = "Jane";

$p2 = new Person();
$p2->name = "Beky";

echo $p1->name . "\n";
echo $p2->name . "\n";
6

Các lớp và phương pháp Tóm tắt PHP

Các lớp trừu tượng không thể được khởi tạo. Nếu một lớp chứa ít nhất một phương pháp trừu tượng, nó cũng phải được khai báo trừu tượng. Các phương pháp trừu tượng không thể được thực hiện, chúng chỉ khai báo các chữ ký của các phương thức. Khi chúng ta kế thừa từ một lớp trừu tượng, tất cả các phương pháp trừu tượng phải được thực hiện bởi lớp dẫn xuất. Hơn nữa, các phương pháp này phải được khai báo với cùng hoặc với khả năng hiển thị ít bị hạn chế hơn.

Không giống như các giao diện, các lớp trừu tượng có thể có các phương thức thực hiện đầy đủ và cũng có thể đã xác định các trường thành viên. Vì vậy, các lớp trừu tượng có thể cung cấp một việc thực hiện một phần. Các lập trình viên thường đặt một số chức năng chung vào các lớp trừu tượng. Và các lớp trừu tượng này sau đó được phân lớp để cung cấp triển khai cụ thể hơn. Ví dụ, thư viện đồ họa QT có

87, đây là lớp cơ sở trừu tượng của các tiện ích nút, cung cấp chức năng chung cho các nút. Các nút 
88, 
89, 
90, 
91 và 
92 kế thừa từ lớp trừu tượng cơ sở này.

Chính thức đặt, các lớp trừu tượng được sử dụng để thực thi một giao thức. Giao thức là một tập hợp các hoạt động mà tất cả các đối tượng triển khai phải hỗ trợ.

abstract.php

name = "Jane";

$p2 = new Person();
$p2->name = "Beky";

echo $p1->name . "\n";
echo $p2->name . "\n";
7

Trong tập lệnh PHP của chúng tôi, chúng tôi có một lớp

93 trừu tượng. Lớp xác định hai trường thành viên, xác định một phương thức và khai báo một phương thức. Một trong những phương pháp là trừu tượng, phương pháp khác được thực hiện đầy đủ. Lớp 
93 là trừu tượng vì chúng ta không thể vẽ nó. Chúng ta có thể vẽ một vòng tròn, một dấu chấm hoặc một hình vuông. Lớp 
93 có một số chức năng chung cho các đối tượng mà chúng ta có thể vẽ.

name = "Jane";

$p2 = new Person();
$p2->name = "Beky";

echo $p1->name . "\n";
echo $p2->name . "\n";
8

A

echo $p1->name . "\n";
echo $p2->name . "\n";
3 là một lớp con của lớp
93. Nó phải thực hiện phương pháp khu vực trừu tượng.

name = "Jane";

$p2 = new Person();
$p2->name = "Beky";

echo $p1->name . "\n";
echo $p2->name . "\n";
9

Giao diện PHP

Điều khiển từ xa là một giao diện giữa người xem và TV. Nó là một giao diện cho thiết bị điện tử này. Giao thức ngoại giao hướng dẫn tất cả các hoạt động trong lĩnh vực ngoại giao. Các quy tắc của con đường là các quy tắc mà người lái xe, người đi xe đạp và người đi bộ phải tuân theo. Các giao diện trong lập trình là các ví dụ tương tự cho các ví dụ trước.

Giao diện là:

  • API
  • Hợp đồng

Các đối tượng tương tác với thế giới bên ngoài với các phương pháp họ phơi bày. Việc thực hiện thực tế không quan trọng đối với lập trình viên, hoặc nó cũng có thể là bí mật. Một công ty có thể bán một thư viện và họ không muốn tiết lộ việc triển khai thực tế. Một lập trình viên có thể gọi một phương thức

98 trên cửa sổ của bộ công cụ GUI, nhưng không biết gì về cách thực hiện phương thức này. Từ quan điểm này, các giao diện là các phương thức thông qua đó các đối tượng tương tác với thế giới bên ngoài, mà không phơi bày quá nhiều về hoạt động bên trong của chúng.

Từ quan điểm thứ hai, giao diện là hợp đồng. Nếu đồng ý, họ phải được theo dõi. Chúng được sử dụng để thiết kế một kiến ​​trúc của một ứng dụng và chúng giúp tổ chức mã.

Giao diện là các loại trừu tượng hoàn toàn. Họ được khai báo bằng cách sử dụng từ khóa

99. Giao diện chỉ có thể có chữ ký phương pháp và hằng số. Tất cả các chữ ký phương thức được khai báo trong một giao diện phải được công khai. Họ không thể thực hiện đầy đủ các phương pháp, cũng như các trường thành viên. Một lớp PHP có thể thực hiện bất kỳ số lượng giao diện. Một giao diện cũng có thể mở rộng bất kỳ số lượng giao diện. Một lớp thực hiện một giao diện phải thực hiện tất cả các chữ ký phương thức của một giao diện.

Các giao diện được sử dụng để mô phỏng nhiều kế thừa. Một lớp PHP chỉ có thể mở rộng một lớp. Một lớp PHP có thể thực hiện nhiều giao diện. Nhiều kế thừa bằng cách sử dụng các giao diện không phải là về các phương thức và biến kế thừa. Đó là về việc kế thừa ý tưởng hoặc hợp đồng, được mô tả bởi các giao diện.

Có một sự khác biệt quan trọng giữa các giao diện và các lớp trừu tượng. Các lớp trừu tượng cung cấp triển khai một phần cho các lớp có liên quan trong hệ thống phân cấp kế thừa. Mặt khác, các giao diện có thể được thực hiện bởi các lớp không liên quan đến nhau. Ví dụ: chúng tôi có hai nút: nút cổ điển và nút tròn. Cả hai kế thừa từ một lớp nút trừu tượng cung cấp một số chức năng chung cho tất cả các nút. Việc thực hiện các lớp có liên quan, vì tất cả đều là nút. Một ví dụ khác có thể có các lớp

class Simple {}
00 và
class Simple {}
01. Họ không liên quan đến nhau. Chúng tôi có thể áp dụng giao diện
class Simple {}
02 sẽ buộc họ tạo ra một phương thức để ghi nhật ký.

simple_interface.php

$p1 = new Person();
$p1->name = "Jane";
0

Đây là một tập lệnh PHP đơn giản thể hiện một giao diện.

$p1 = new Person();
$p1->name = "Jane";
1

Đây là một giao diện

class Simple {}
03. Nó có chữ ký phương pháp
class Simple {}
04.

$p1 = new Person();
$p1->name = "Jane";
2

Chúng tôi sử dụng

class Simple {}
05 để thực hiện từ một giao diện.

$p1 = new Person();
$p1->name = "Jane";
3

Lớp cung cấp một triển khai cho phương pháp

class Simple {}
04.

Ví dụ tiếp theo cho thấy cách một lớp có thể thực hiện nhiều giao diện.

Interface.php

$p1 = new Person();
$p1->name = "Jane";
4

Chúng tôi có một lớp điện thoại di động kế thừa từ ba giao diện.

$p1 = new Person();
$p1->name = "Jane";
5

Lớp thực hiện cả ba giao diện, được chia cho dấu phẩy. Lớp

class Simple {}
07 phải triển khai tất cả các chữ ký phương thức từ cả ba giao diện.

$p1 = new Person();
$p1->name = "Jane";
6

Ví dụ tiếp theo cho thấy cách các giao diện có thể mở rộng từ nhiều giao diện khác.

extending_interfaces.php

$p1 = new Person();
$p1->name = "Jane";
7

Trong tập lệnh PHP này, chúng tôi xác định ba giao diện. Mở rộng giao diện cho phép chúng tôi tổ chức chúng.

$p1 = new Person();
$p1->name = "Jane";
8

Giao diện ILOG mở rộng hai giao diện khác.

$p1 = new Person();
$p1->name = "Jane";
9

Lớp

class Simple {}
08 thực hiện phương pháp
class Simple {}
04. Phương pháp này được kế thừa bởi giao diện
class Simple {}
10, mà lớp thực hiện.

Đa hình PHP

Đa hình là quá trình sử dụng toán tử hoặc chức năng theo các cách khác nhau cho đầu vào dữ liệu khác nhau. Về mặt thực tế, tính đa hình có nghĩa là nếu lớp B kế thừa từ lớp A, thì nó không phải thừa hưởng mọi thứ về lớp A; Nó có thể làm một số điều mà Class A không khác nhau.

Nói chung, đa hình là khả năng xuất hiện dưới các hình thức khác nhau. Về mặt kỹ thuật, đó là khả năng xác định lại các phương pháp cho các lớp dẫn xuất. Đa hình liên quan đến việc áp dụng các triển khai cụ thể vào giao diện hoặc lớp cơ sở chung hơn.

polymorphism.php

$p2 = new Person();
$p2->name = "Beky";
0

Trong tập lệnh PHP trên, chúng tôi có một lớp ____211 trừu tượng. Lớp này biến thành hai lớp hậu duệ:

class Simple {}
12 và
class Simple {}
13. Cả hai đều cung cấp thực hiện riêng của họ về phương pháp
echo $p1->name . "\n";
echo $p2->name . "\n";
7. Đa hình mang lại sự linh hoạt và khả năng mở rộng cho các hệ thống OOP.

Trong bài viết này, chúng tôi đã đề cập đến OOP trong PHP.

Liệt kê tất cả các hướng dẫn PHP.

OOP trong PHP với ví dụ là gì?

PHP là gì OOP là gì? OOP là viết tắt của lập trình hướng đối tượng. Lập trình thủ tục là về các quy trình hoặc chức năng viết thực hiện các hoạt động trên dữ liệu, trong khi lập trình hướng đối tượng là về việc tạo các đối tượng có chứa cả dữ liệu và chức năng.Object-Oriented Programming. Procedural programming is about writing procedures or functions that perform operations on the data, while object-oriented programming is about creating objects that contain both data and functions.

Ví dụ ngoài đời thực của rất tiếc là gì?

Chúng ta hãy lấy một ví dụ về một trong những khái niệm OOPS với các ví dụ thời gian thực: nếu bạn có một lớp có tên là những chiếc xe đắt tiền, thì nó có thể chứa các đối tượng như Mercedes, BMW, Toyota, v.v.Giá hoặc tốc độ của các ô tô này có thể là một trong những thuộc tính của nó (dữ liệu).If you had a class called “Expensive Cars,” it could contain objects like Mercedes, BMW, Toyota, and so on. The price or speed of these autos could be one of its attributes (data).

OOP có phù hợp cho ứng dụng thời gian thực không?

Nó đặc biệt hữu ích trong việc mô hình hóa các vấn đề trong thế giới thực.Dưới đây là một số ứng dụng của rất tiếc: Thiết kế hệ thống thời gian thực: Hệ thống thời gian thực kế thừa sự phức tạp và gây khó khăn cho việc xây dựng chúng.Kỹ thuật OOP giúp dễ dàng hơn để xử lý những phức tạp đó.. Below are some applications of OOPs: Real-Time System design: Real-time system inherits complexities and makes it difficult to build them. OOP techniques make it easier to handle those complexities.

Tại sao chúng ta sử dụng rất tiếc trong cuộc sống thực?

Lập trình hướng đối tượng được coi là một phương pháp thiết kế để xây dựng phần mềm không cứng nhắc.Trong rất tiếc, mọi logic được viết để hoàn thành công việc của chúng tôi, nhưng được thể hiện dưới dạng các đối tượng.OOP cho phép chúng tôi chia các vấn đề của mình thành đơn vị công việc nhỏ được thể hiện thông qua các đối tượng và các chức năng của chúng.allows us to break our problems into small unit of work that is represented via objects and their functions.