Hướng dẫn what are objects in php language? - các đối tượng trong ngôn ngữ php là gì?


Chúng ta có thể tưởng tượng vũ trụ của chúng ta được làm 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 xe của chúng ta được làm từ các vật thể khác nhau như bánh xe, tay lái, thiết bị, v.v. Thực hiện một phần mềm bằng các đối tượng khác nhau.

Khái niệm định hướng đối tượng

Trước khi chúng ta đi chi tiết, hãy xác định các thuật ngữ quan trọng liên quan đến lập trình hướng đối tượng.

  • Lớp-Đây là một loại dữ liệu do lập trình viên xác định, bao gồm các chức năng cục bộ cũng như dữ liệu cục bộ. Bạn có thể nghĩ về một lớp như một mẫu để tạo nhiều trường hợp cùng loại (hoặc lớp) của đối tượng. − This is a programmer-defined data type, which includes local functions as well as local data. You can think of a class as a template for making many instances of the same kind (or class) of object.

  • Đối tượng - một thể hiện riêng lẻ của cấu trúc dữ liệu được xác định bởi một lớp. Bạn xác định một lớp một lần và sau đó tạo ra nhiều đối tượng thuộc về nó. Đối tượng còn được gọi là ví dụ. − An individual instance of the data structure defined by a class. You define a class once and then make many objects that belong to it. Objects are also known as instance.

  • Biến thành viên - Đây là các biến được xác định bên trong một lớp. Dữ liệu này sẽ vô hình ở bên ngoài lớp và có thể được truy cập thông qua các chức năng thành viên. Các biến này được gọi là thuộc tính của đối tượng sau khi một đối tượng được tạo. − These are the variables defined inside a class. This data will be invisible to the outside of the class and can be accessed via member functions. These variables are called attribute of the object once an object is created.

  • Hàm thành viên - Đây là hàm được xác định bên trong một lớp và được sử dụng để truy cập dữ liệu đối tượng. − These are the function defined inside a class and are used to access object data.

  • Di truyền - Khi một lớp được xác định bằng cách kế thừa chức năng hiện có của lớp cha thì nó được gọi là kế thừa. Ở đây lớp con sẽ kế thừa tất cả hoặc một vài hàm thành viên và biến của lớp cha. − When a class is defined by inheriting existing function of a parent class then it is called inheritance. Here child class will inherit all or few member functions and variables of a parent class.

  • Lớp cha - một lớp được kế thừa từ một lớp khác. Đây cũng được gọi là lớp cơ sở hoặc siêu lớp. − A class that is inherited from by another class. This is also called a base class or super class.

  • Lớp con - một lớp kế thừa từ một lớp khác. Đây cũng được gọi là lớp con hoặc lớp có nguồn gốc. − A class that inherits from another class. This is also called a subclass or derived class.

  • Đa hình - Đây là một khái niệm định hướng đối tượng trong đó có thể sử dụng chức năng cùng một chức năng cho các mục đích khác nhau. Ví dụ: tên chức năng sẽ vẫn giữ nguyên nhưng nó có số lượng đối số khác nhau và có thể thực hiện nhiệm vụ khác nhau. − This is an object oriented concept where same function can be used for different purposes. For example function name will remain same but it take different number of arguments and can do different task.

  • Quá tải - một loại đa hình trong đó một số hoặc tất cả các nhà khai thác có các triển khai khác nhau tùy thuộc vào các loại đối số của họ. Các chức năng tương tự cũng có thể bị quá tải với việc thực hiện khác nhau. − a type of polymorphism in which some or all of operators have different implementations depending on the types of their arguments. Similarly functions can also be overloaded with different implementation.

  • Trừu tượng dữ liệu - bất kỳ biểu diễn dữ liệu nào trong đó các chi tiết triển khai được ẩn (trừu tượng hóa). − Any representation of data in which the implementation details are hidden (abstracted).

  • Đóng gói - đề cập đến một khái niệm trong đó chúng tôi gói gọn tất cả các chức năng dữ liệu và thành viên với nhau để tạo thành một đối tượng. − refers to a concept where we encapsulate all the data and member functions together to form an object.

  • Constructor - đề cập đến một loại chức năng đặc biệt sẽ được gọi tự động bất cứ khi nào có sự hình thành đối tượng từ một lớp. − refers to a special type of function which will be called automatically whenever there is an object formation from a class.

  • Destructor - đề cập đến một loại chức năng đặc biệt sẽ được gọi tự động bất cứ khi nào một đối tượng bị xóa hoặc đi ra khỏi phạm vi. − refers to a special type of function which will be called automatically whenever an object is deleted or goes out of scope.

Xác định các lớp PHP

Mẫu chung để xác định một lớp mới trong PHP như sau -

<?php
   class phpClass {
      var $var1;
      var $var2 = "constant string";
      
      function myfunc ($arg1, $arg2) {
         [..]
      }
      [..]
   }
?>

Đây là mô tả của từng dòng -

  • Lớp mẫu đặc biệt, theo sau là tên của lớp mà bạn muốn xác định.class, followed by the name of the class that you want to define.

  • Một tập hợp các niềng răng bao gồm bất kỳ số lượng khai báo biến và định nghĩa chức năng.

  • Khai báo biến bắt đầu với biểu mẫu đặc biệt var, được theo sau bởi một tên biến $ thông thường; Họ cũng có thể có một nhiệm vụ ban đầu cho một giá trị không đổi.var, which is followed by a conventional $ variable name; they may also have an initial assignment to a constant value.

  • Các định nghĩa chức năng trông giống như các hàm PHP độc lập nhưng là cục bộ của lớp và sẽ được sử dụng để đặt và truy cập dữ liệu đối tượng.

Thí dụ

Dưới đây là một ví dụ xác định loại sách loại -

<?php
   class Books {
      /* Member variables */
      var $price;
      var $title;
      
      /* Member functions */
      function setPrice($par){
         $this->price = $par;
      }
      
      function getPrice(){
         echo $this->price ."<br/>";
      }
      
      function setTitle($par){
         $this->title = $par;
      }
      
      function getTitle(){
         echo $this->title ." <br/>";
      }
   }
?>

Biến $ Đây là một biến đặc biệt và nó đề cập đến cùng một đối tượng IE. chính nó.$this is a special variable and it refers to the same object ie. itself.

Tạo đối tượng trong PHP

Khi bạn đã xác định lớp của mình, thì bạn có thể tạo bao nhiêu đối tượng như bạn muốn loại lớp đó. Sau đây là một ví dụ về cách tạo đối tượng bằng toán tử mới.new operator.

$physics = new Books;
$maths = new Books;
$chemistry = new Books;

Ở đây chúng tôi đã tạo ra ba đối tượng và những đối tượng này độc lập với nhau và chúng sẽ có sự tồn tại riêng biệt. Tiếp theo chúng ta sẽ xem cách truy cập chức năng thành viên và xử lý các biến thành viên.

Gọi các chức năng thành viên

Sau khi tạo các đối tượng của bạn, bạn sẽ có thể gọi các chức năng 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 đây cho thấy cách đặt tiêu đề và giá cho ba cuốn sách bằng cách gọi các chức năng 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 các chức năng thành viên khác để có được các giá trị được đặt bởi 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

Chức năng xây dựng

Các hàm xây dựng là loại chức năng đặc biệt được gọi là 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 các chức năng xây dựng.

PHP cung cấp một hàm đặc biệt gọi là __construct () để xác định hàm tạo. Bạn có thể truyền nhiều đối số bạn thích vào hàm tạo hàm.__construct() to define a constructor. You can pass as many as arguments you like into the constructor function.

Ví dụ sau sẽ tạo ra một hàm tạo cho lớp sách 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 chức năng tập hợp để đặt giá và tiêu đề. Chúng ta có thể khởi tạo hai 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 đây -

$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 -

  Physics for High School
  Advanced Chemistry
  Algebra
  10
  15
  7

Người phá hủy

Giống như hàm hàm tạo, bạn có thể xác định hàm phá hủy bằng hàm __destruct (). Bạn có thể phát hành tất cả các tài nguyên với một chất phá hủy.__destruct(). You can release all the resources with-in a destructor.

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 {
   <definition body>
}

Hiệu quả của việc thừa kế là lớp con (hoặc lớp con hoặc lớp dẫn xuất) có các đặc điểm sau -

  • Tự động có tất cả các khai báo biến thành viên của lớp cha.

  • Tự động có tất cả các chức năng thành viên giống như cha mẹ, mà (theo mặc định) sẽ hoạt động giống như các chức năng đó trong cha mẹ.

Ví dụ sau kế thừa lớp sách và thêm nhiều chức năng dựa trên yêu cầu.

<?php
   class Books {
      /* Member variables */
      var $price;
      var $title;
      
      /* Member functions */
      function setPrice($par){
         $this->price = $par;
      }
      
      function getPrice(){
         echo $this->price ."<br/>";
      }
      
      function setTitle($par){
         $this->title = $par;
      }
      
      function getTitle(){
         echo $this->title ." <br/>";
      }
   }
?>
0

Bây giờ ngoài các chức năng kế thừa, Class Novel giữ thêm hai chức năng thành viên.

Chức năng ghi đè

Định nghĩa chức năng trong các lớp con ghi đè các định nghĩa với cùng tên trong các lớp cha. Trong một lớp con, chúng ta có thể sửa đổi định nghĩa của một hàm được kế thừa từ lớp cha.

Trong ví dụ sau đây, các hàm getTitle được ghi đè để trả về một số giá trị.

<?php
   class Books {
      /* Member variables */
      var $price;
      var $title;
      
      /* Member functions */
      function setPrice($par){
         $this->price = $par;
      }
      
      function getPrice(){
         echo $this->price ."<br/>";
      }
      
      function setTitle($par){
         $this->title = $par;
      }
      
      function getTitle(){
         echo $this->title ." <br/>";
      }
   }
?>
1

Thành viên công cộng

Trừ 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ể -

  • Từ bên ngoài lớp mà nó được tuyên bố

  • Từ trong lớp mà nó được tuyên bố

  • Từ trong một lớp khác thực hiện lớp mà nó được tuyên bố

Cho đến bây giờ chúng tôi đã thấy tất cả các thành viên là thành viên công cộng. Nếu bạn muốn giới hạn khả năng tiếp cận của các thành viên của một lớp thì bạn xác định các thành viên lớp là riêng tư hoặc được bảo vệ.private or protected.

Thành viên tư nhân

Bằng cách chỉ định một thành viên riêng tư, bạn giới hạn khả năng tiếp cận của nó đối với lớp mà nó được khai báo. Thành viên tư nhân không thể được giới thiệu từ các lớp kế thừa lớp mà nó được khai báo và không thể được truy cập từ bên ngoài lớp.

Một thành viên lớp có thể được thực hiện riêng tư bằng cách sử dụng từ khóa riêng tư của thành viên.private keyword infront of the member.

<?php
   class Books {
      /* Member variables */
      var $price;
      var $title;
      
      /* Member functions */
      function setPrice($par){
         $this->price = $par;
      }
      
      function getPrice(){
         echo $this->price ."<br/>";
      }
      
      function setTitle($par){
         $this->title = $par;
      }
      
      function getTitle(){
         echo $this->title ." <br/>";
      }
   }
?>
2

Khi lớp MyClass được kế thừa bởi một lớp khác bằng cách sử dụng mở rộng, myPublicFunction () sẽ được hiển thị, cũng như $ Driver. Lớp mở rộng sẽ không có bất kỳ nhận thức nào về hoặc truy cập vào MyPrivateFunction và $ Car, bởi vì chúng được tuyên bố riêng tư.

Thành viên được bảo vệ

Một 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.protected keyword in front of the member.

Đây là phiên bản khác nhau của MyClass -

<?php
   class Books {
      /* Member variables */
      var $price;
      var $title;
      
      /* Member functions */
      function setPrice($par){
         $this->price = $par;
      }
      
      function getPrice(){
         echo $this->price ."<br/>";
      }
      
      function setTitle($par){
         $this->title = $par;
      }
      
      function getTitle(){
         echo $this->title ." <br/>";
      }
   }
?>
3

Giao diện

Các giao diện được xác định để cung cấp một tên chức năng chung cho người thực hiện. Người thực hiện khác nhau có thể thực hiện các giao diện đó theo yêu cầu của họ. Bạn có thể nói, giao diện là bộ xương được thực hiện bởi các nhà phát triển.

Kể từ PHP5, có thể xác định giao diện, như thế này -

<?php
   class Books {
      /* Member variables */
      var $price;
      var $title;
      
      /* Member functions */
      function setPrice($par){
         $this->price = $par;
      }
      
      function getPrice(){
         echo $this->price ."<br/>";
      }
      
      function setTitle($par){
         $this->title = $par;
      }
      
      function getTitle(){
         echo $this->title ." <br/>";
      }
   }
?>
4

Sau đó, nếu một lớp khác thực hiện giao diện đó, như thế này -

<?php
   class Books {
      /* Member variables */
      var $price;
      var $title;
      
      /* Member functions */
      function setPrice($par){
         $this->price = $par;
      }
      
      function getPrice(){
         echo $this->price ."<br/>";
      }
      
      function setTitle($par){
         $this->title = $par;
      }
      
      function getTitle(){
         echo $this->title ." <br/>";
      }
   }
?>
5

Hằng số

Một hằng số có phần giống như một biến, trong đó nó giữ một giá trị, nhưng thực sự giống như một hàm vì một hằng số là bất biến. Một khi bạn khai báo một hằng số, nó không thay đổi.

Tuyên bố một hằng số rất dễ dàng, như được thực hiện trong phiên bản MyClass này -

<?php
   class Books {
      /* Member variables */
      var $price;
      var $title;
      
      /* Member functions */
      function setPrice($par){
         $this->price = $par;
      }
      
      function getPrice(){
         echo $this->price ."<br/>";
      }
      
      function setTitle($par){
         $this->title = $par;
      }
      
      function getTitle(){
         echo $this->title ." <br/>";
      }
   }
?>
6

Trong lớp này, bắt buộc là một hằng số. Nó được tuyên bố với từ khóa Const, và trong mọi trường hợp, nó không thể được thay đổi thành bất cứ điều gì khác ngoài 1.7. Lưu ý rằng tên của hằng số không có $ hàng đầu, như tên biến làm.

Lớp học trừu tượng

Một lớp trừu tượng là một lớp không thể được khởi tạo, chỉ được thừa hưởng. Bạn tuyên bố một lớp trừu tượng với từ khóa trừu tượng, như thế này -abstract, like this −

Khi kế thừa từ một lớp trừu tượng, tất cả các phương pháp được đánh dấu trừu tượng trong tuyên bố lớp của cha mẹ phải được xác định bởi đứa trẻ; Ngoài ra, các phương pháp này phải được xác định với cùng một tầm nhìn.

<?php
   class Books {
      /* Member variables */
      var $price;
      var $title;
      
      /* Member functions */
      function setPrice($par){
         $this->price = $par;
      }
      
      function getPrice(){
         echo $this->price ."<br/>";
      }
      
      function setTitle($par){
         $this->title = $par;
      }
      
      function getTitle(){
         echo $this->title ." <br/>";
      }
   }
?>
7

Lưu ý rằng các định nghĩa chức năng bên trong một lớp trừu tượng cũng phải được đi trước bởi Tóm tắt từ khóa. Nó không hợp pháp để có các định nghĩa chức năng trừu tượng trong một lớp không phải là người.

Từ khóa tĩnh

Tuyên bố 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 mà không cần phải khởi tạo lớp. Một thành viên được tuyên bố là không thể truy cập tĩnh với một đối tượng lớp khởi tạo (mặc dù phương thức tĩnh có thể).

Thử ví dụ sau -

<?php
   class Books {
      /* Member variables */
      var $price;
      var $title;
      
      /* Member functions */
      function setPrice($par){
         $this->price = $par;
      }
      
      function getPrice(){
         echo $this->price ."<br/>";
      }
      
      function setTitle($par){
         $this->title = $par;
      }
      
      function getTitle(){
         echo $this->title ." <br/>";
      }
   }
?>
8

Từ khóa cuối cùng

Php 5 giới thiệu từ khóa cuối cùng, ngăn chặn các lớp con ghi đè một phương thức bằng cách tiền tố định nghĩa với Final. Nếu bản thân lớp đang được xác định cuối cùng thì nó không thể được mở rộng.

Ví dụ sau dẫn đến lỗi gây tử vong: Không thể ghi đè phương thức cuối cùng Baseclass :: moretesting ()

<?php
   class Books {
      /* Member variables */
      var $price;
      var $title;
      
      /* Member functions */
      function setPrice($par){
         $this->price = $par;
      }
      
      function getPrice(){
         echo $this->price ."<br/>";
      }
      
      function setTitle($par){
         $this->title = $par;
      }
      
      function getTitle(){
         echo $this->title ." <br/>";
      }
   }
?>
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 cho 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 tôi có một lớp cha (tên), có một hàm tạo hai đối tượng và một lớp con (Tên1), có một hàm tạo ba đối tượng. Chất xây dựng của các chức năng của NameB1 bằng cách gọi hàm tạo cha mẹ của nó một cách rõ ràng bằng cách sử dụng cú pháp :: Syntax (chuyển hai đối số của nó theo) và sau đó đặt một trường bổ sung. Tương tự, NAMEUB1 định nghĩa hàm TOSTRING () không xây dựng của nó theo hàm cha mà nó ghi đè.

Lưu ý - một hàm tạo có thể được xác định 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. − A constructor can be defined with the same name as the name of a class. It is defined in above example.

Loại đối tượng PHP là gì?

Trong PHP, đối tượng là một loại dữ liệu hỗn hợp (cùng với các 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 tích hợp hoặc người dùng được xác định. Ngoài các thuộc tính, lớp xác định chức năng được liên kết với dữ liệu.a compound data type (along with arrays). Values of more than one types can be stored together in a single variable. Object is an instance of either a built-in or user defined class. In addition to properties, class defines functionality associated with data.

Đối tượng giải thích với ví dụ là gì?

Một đối tượng là một danh từ (hoặc đại từ) được tác động bởi một động từ hoặc giới từ.Có ba loại đối tượng: đối tượng trực tiếp (ví dụ: tôi biết anh ta.) Đối tượng gián tiếp (ví dụ: cho cô ấy giải thưởng.)a noun (or pronoun) that is acted upon by a verb or a preposition. There are three kinds of object: Direct Object (e.g., I know him.) Indirect Object (e.g., Give her the prize.)

Đối tượng trong ngôn ngữ lập trình là gì?

Một đối tượng là một loại dữ liệu trừu tượng với việc bổ sung tính đa hình và di truyền.Thay vì các chương trình cấu trúc dưới dạng mã và dữ liệu, một hệ thống hướng đối tượng tích hợp cả hai bằng cách sử dụng khái niệm "đối tượng".Một đối tượng có trạng thái (dữ liệu) và hành vi (mã).Đối tượng có thể tương ứng với những thứ được tìm thấy trong thế giới thực.an abstract data type with the addition of polymorphism and inheritance. Rather than structure programs as code and data, an object-oriented system integrates the two using the concept of an "object". An object has state (data) and behavior (code). Objects can correspond to things found in the real world.

Đối tượng trong OOP là gì?

Trong lập trình hướng đối tượng (OOP), các đối tượng là những điều bạn nghĩ về đầu tiên trong việc thiết kế một chương trình và chúng cũng là đơn vị mã cuối cùng có nguồn gốc từ quy trình.the things you think about first in designing a program and they are also the units of code that are eventually derived from the process.