Các lớp php hoạt động như thế nào?
Chúng ta có thể tưởng tượng vũ trụ của chúng ta được tạo thành từ các vật thể khác nhau như mặt trời, trái đất, mặt trăng, v.v. Tương tự, chúng ta có thể tưởng tượng chiếc ô tô của mình được làm từ các vật thể khác nhau như bánh xe, tay lái, bánh răng, v.v. Tương tự, có các khái niệm lập trình hướng đối tượng coi mọi thứ là một đối tượng và triển khai phần mềm bằng các đối tượng khác nhau Show
Khái niệm hướng đối tượngTrước khi đi vào chi tiết, hãy định nghĩa các thuật ngữ quan trọng liên quan đến Lập trình hướng đối tượng
Định nghĩa các lớp PHPDạng chung để định nghĩa một lớp mới trong PHP như sau - Dưới đây là mô tả của từng dòng -
Ví dụĐây là một ví dụ định nghĩa một lớp loại Sách - price = $par; } function getPrice(){ echo $this->price ." Biến $this là một biến đặc biệt và nó đề cập đến cùng một đối tượng tức là. chính nó Tạo đối tượng trong PHPKhi bạn đã xác định lớp của mình, thì bạn có thể tạo bao nhiêu đối tượng tùy thích cho loại lớp đó. Sau đây là ví dụ về cách tạo đối tượng bằng toán tử new $physics = new Books; $maths = new Books; $chemistry = new Books; Ở đây chúng tôi đã tạo ba đối tượng và các đối tượng này độc lập với nhau và chúng sẽ tồn tại riêng biệt. Tiếp theo chúng ta sẽ xem cách truy cập hàm thành viên và xử lý các biến thành viên Gọi hàm thành viênSau khi tạo các đối tượng của mình, bạn sẽ có thể gọi các hàm thành viên liên quan đến đối tượng đó. Một hàm thành viên sẽ chỉ có thể xử lý biến thành viên của đối tượng liên quan Ví dụ sau cho thấy cách đặt tiêu đề và giá cho ba cuốn sách bằng cách gọi các hàm thành viên $physics->setTitle( "Physics for High School" ); $chemistry->setTitle( "Advanced Chemistry" ); $maths->setTitle( "Algebra" ); $physics->setPrice( 10 ); $chemistry->setPrice( 15 ); $maths->setPrice( 7 ); Bây giờ bạn gọi một hàm thành viên khác để lấy các giá trị được đặt trong ví dụ trên - $physics->getTitle(); $chemistry->getTitle(); $maths->getTitle(); $physics->getPrice(); $chemistry->getPrice(); $maths->getPrice(); Điều này sẽ tạo ra kết quả sau - Physics for High School Advanced Chemistry Algebra 10 15 7 Hàm xây dựngHàm xây dựng là loại hàm đặc biệt được gọi tự động bất cứ khi nào một đối tượng được tạo. Vì vậy, chúng tôi tận dụng tối đa hành vi này, bằng cách khởi tạo nhiều thứ thông qua hàm tạo PHP cung cấp một hàm đặc biệt gọi là __construct() để định nghĩa một hàm tạo. Bạn có thể chuyển bao nhiêu đối số tùy thích vào hàm tạo Ví dụ sau sẽ tạo một hàm tạo cho lớp Books và nó sẽ khởi tạo giá và tiêu đề cho cuốn sách tại thời điểm tạo đối tượng function __construct( $par1, $par2 ) { $this->title = $par1; $this->price = $par2; } Bây giờ chúng ta không cần gọi riêng hàm set để đặt giá và tiêu đề. Chúng ta chỉ có thể khởi tạo 2 biến thành viên này tại thời điểm tạo đối tượng. Kiểm tra ví dụ sau bên dưới - $physics = new Books( "Physics for High School", 10 ); $maths = new Books ( "Advanced Chemistry", 15 ); $chemistry = new Books ("Algebra", 7 ); /* Get those set values */ $physics->getTitle(); $chemistry->getTitle(); $maths->getTitle(); $physics->getPrice(); $chemistry->getPrice(); $maths->getPrice(); Điều này sẽ tạo ra kết quả sau - Kẻ hủy diệtGiống như hàm tạo, bạn có thể định nghĩa hàm hủy bằng cách sử dụng hàm __desturation(). Bạn có thể giải phóng tất cả các tài nguyên trong một hàm hủy Di sảnĐịnh nghĩa lớp PHP có thể tùy chọn kế thừa từ định nghĩa lớp cha bằng cách sử dụng mệnh đề mở rộng. Cú pháp như sau - class Child extends Parent { } Ảnh hưởng của tính kế thừa là lớp con (hoặc lớp con hoặc lớp dẫn xuất) có các đặc điểm sau -
Ví dụ sau kế thừa lớp Books và thêm nhiều chức năng hơn dựa trên yêu cầu price = $par; } function getPrice(){ echo $this->price ."0 Bây giờ ngoài các chức năng kế thừa, lớp Novel giữ thêm hai chức năng thành viên Ghi đè chức năngCác định nghĩa hàm trong các lớp con ghi đè các định nghĩa có cùng tên trong các lớp cha. Trong lớp con, chúng ta có thể sửa đổi định nghĩa của một hàm kế thừa từ lớp cha Trong ví dụ sau, các hàm getPrice và getTitle được ghi đè để trả về một số giá trị price = $par; } function getPrice(){ echo $this->price ."1 Thành viên công khaiTrừ khi bạn chỉ định khác, các thuộc tính và phương thức của một lớp là công khai. Điều đó có nghĩa là, chúng có thể được truy cập trong ba tình huống có thể xảy ra -
Cho đến bây giờ chúng tôi đã xem tất cả các thành viên là thành viên công khai. Nếu bạn muốn giới hạn khả năng truy cập của các thành viên trong lớp thì bạn xác định các thành viên của lớp là riêng tư hoặc được bảo vệ thành viên riêng tưBằng cách chỉ định một thành viên riêng tư, bạn giới hạn khả năng truy cập của nó đối với lớp mà nó được khai báo. Thành viên private không thể được tham chiếu từ các lớp kế thừa lớp mà nó được khai báo và không thể truy cập từ bên ngoài lớp Một thành viên lớp có thể được đặt ở chế độ riêng tư bằng cách sử dụng từ khóa riêng trước mặt thành viên price = $par; } function getPrice(){ echo $this->price ."2 Khi lớp MyClass được lớp khác kế thừa bằng cách sử dụng phần mở rộng, myPublicFunction() sẽ hiển thị, $driver cũng vậy. Lớp mở rộng sẽ không có bất kỳ nhận thức hoặc quyền truy cập nào vào myPrivateFunction và $car, vì chúng được khai báo là riêng tư Thành viên được bảo vệThuộc tính hoặc phương thức được bảo vệ có thể truy cập được trong lớp mà nó được khai báo, cũng như trong các lớp mở rộng lớp đó. Các thành viên được bảo vệ không có sẵn bên ngoài hai loại lớp đó. Một thành viên lớp có thể được bảo vệ bằng cách sử dụng từ khóa được bảo vệ trước thành viên Đây là phiên bản khác của MyClass - price = $par; } function getPrice(){ echo $this->price ."3 giao diệnCác giao diện được xác định để cung cấp một tên hàm chung cho những người triển khai. Những người triển khai khác nhau có thể triển khai các giao diện đó theo yêu cầu của họ. Có thể nói, giao diện là bộ xương được các nhà phát triển triển khai Kể từ PHP5, có thể định nghĩa một giao diện, như thế này - price = $par; } function getPrice(){ echo $this->price ."4 Sau đó, nếu một lớp khác triển khai giao diện đó, như thế này - price = $par; } function getPrice(){ echo $this->price ."5 hằng sốMột hằng số giống như một biến, ở chỗ nó giữ một giá trị, nhưng thực sự giống một hàm hơn vì một hằng số là bất biến. Khi bạn khai báo một hằng số, nó không thay đổi Việc khai báo một hằng số rất dễ dàng, như đã được thực hiện trong phiên bản MyClass này - price = $par; } function getPrice(){ echo $this->price ."6 Trong lớp này, requiredMargin là một hằng số. Nó được khai báo với từ khóa const và trong mọi trường hợp, nó không thể thay đổi thành bất kỳ thứ gì khác ngoài 1. 7. Lưu ý rằng tên của hằng số không có $ ở đầu, giống như tên biến Các lớp trừu tượngLớp trừu tượng là lớp không thể khởi tạo mà chỉ được kế thừa. Bạn khai báo một lớp trừu tượng với từ khóa trừu tượng, như thế này - Khi kế thừa từ một lớp trừu tượng, tất cả các phương thức được đánh dấu là trừu tượng trong phần khai báo của lớp cha phải được định nghĩa bởi lớp con; price = $par; } function getPrice(){ echo $this->price ."7 Lưu ý rằng các định nghĩa hàm bên trong một lớp trừu tượng cũng phải được đặt trước từ khóa trừu tượng. Không hợp pháp khi có các định nghĩa hàm trừu tượng bên trong một lớp không trừu tượng Từ khóa tĩnhKhai báo các thành viên hoặc phương thức của lớp là tĩnh giúp chúng có thể truy cập được mà không cần khởi tạo lớp. Một thành viên được khai báo là tĩnh không thể được truy cập bằng một đối tượng lớp được khởi tạo (mặc dù một phương thức tĩnh có thể) Hãy thử ví dụ sau - price = $par; } function getPrice(){ echo $this->price ."8 từ khóa cuối cùngPHP 5 giới thiệu từ khóa cuối cùng, từ khóa này ngăn các lớp con ghi đè một phương thức bằng cách thêm tiền tố vào định nghĩa bằng từ khóa cuối cùng. Nếu bản thân lớp đang được định nghĩa cuối cùng thì nó không thể được mở rộng Ví dụ sau dẫn đến lỗi nghiêm trọng. Không thể ghi đè phương thức cuối cùng BaseClass. thêmThử nghiệm() price = $par; } function getPrice(){ echo $this->price ."9 Gọi các nhà xây dựng cha mẹThay vì viết một hàm tạo hoàn toàn mới cho lớp con, hãy viết nó bằng cách gọi hàm tạo của cha mẹ một cách rõ ràng và sau đó làm bất cứ điều gì cần thiết ngoài việc khởi tạo lớp con. Đây là một ví dụ đơn giản - $physics = new Books; $maths = new Books; $chemistry = new Books;0 Trong ví dụ này, chúng ta có một lớp cha (Name), có một hàm tạo hai đối số và một lớp con (NameSub1), có một hàm tạo ba đối số. Hàm tạo của các hàm NameSub1 bằng cách gọi rõ ràng hàm tạo chính của nó bằng cách sử dụng. cú pháp (chuyển hai đối số của nó) và sau đó thiết lập một trường bổ sung. Tương tự, NameSub1 định nghĩa hàm toString() không phải hàm tạo của nó theo hàm cha mà nó ghi đè LƯU Ý - Một hàm tạo có thể được định nghĩa với cùng tên với tên của một lớp. Nó được định nghĩa trong ví dụ trên Làm thế nào chúng ta sử dụng một lớp trong PHP?Các lớp không là gì nếu không có đối tượng. Chúng ta có thể tạo nhiều đối tượng từ một lớp. Mỗi đối tượng có tất cả các thuộc tính và phương thức được định nghĩa trong lớp, nhưng chúng sẽ có các giá trị thuộc tính khác nhau. Các đối tượng của một lớp được tạo bằng từ khóa new
Lớp học trong PHP giải thích nó bằng ví dụ là gì?Lớp là kiểu dữ liệu do lập trình viên định nghĩa, bao gồm các phương thức cục bộ và biến cục bộ . Lớp là tập hợp các đối tượng. Đối tượng có thuộc tính và hành vi.
Lớp là gì và cách viết lớp trong PHP?Các khía cạnh chính của lớp PHP . Định nghĩa một lớp với từ khóa “class” theo sau là tên của lớp Xác định phương thức khởi tạo bằng cách sử dụng “__construct” theo sau là các đối số. Sau đó, đối tượng của lớp có thể được khởi tạo bằng cách sử dụng “Tên lớp mới (đối số_danh sách)” Xác định các biến lớp. . Xác định các phương thức sử dụng từ khóa “hàm” Làm cách nào để chèn một lớp trong PHP?Bao gồm ví dụ về lớp với từ khóa sử dụng từ Giao diện dòng lệnh. . Tạo một thư mục mới /home/el/bin Tạo một tệp mới có tên namespace_example. . Tạo một tệp khác có tên mylib. . Chạy nó từ dòng lệnh như thế này. el@apollo. ~/bin$ php namespace_example. php |