Làm cách nào để tạo đối tượng thủ công trong PHP?

Giả sử chúng ta có một lớp tên là Fruit. Một Trái cây có thể có các thuộc tính như tên, màu sắc, trọng lượng, v.v. Chúng ta có thể định nghĩa các biến như $name, $color và $weight để giữ các giá trị của các thuộc tính này

Khi các đối tượng riêng lẻ (táo, chuối, v.v. ) được tạo ra, chúng kế thừa tất cả các thuộc tính và hành vi từ lớp, nhưng mỗi đối tượng sẽ có các giá trị khác nhau cho các thuộc tính


Xác định một lớp

Một lớp được định nghĩa bằng cách sử dụng từ khóa

length; // 0utput: 0
echo $obj->width; // 0utput: 0
 
// Set object properties values
$obj->length = 30;
$obj->width = 20;
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
?>
0, theo sau là tên của lớp và một cặp dấu ngoặc nhọn ({}). Tất cả các thuộc tính và phương thức của nó đi vào bên trong dấu ngoặc nhọn

cú pháp

class Fruit {
  // ​​mã ở đây.
}
?>

Dưới đây chúng ta khai báo một lớp có tên là Fruit bao gồm hai thuộc tính ($name và $color) và hai phương thức set_name() và get_name() để thiết lập và lấy thuộc tính $name

class Fruit {
  // ​​Thuộc tính
  public $name;
  public $color;

  // ​​Phương thức
  function set_name($name) {
    $this->name = $name;
  }
  function get_name() {
    return $this->name;
  }
}
?>

Ghi chú. Trong một lớp, các biến được gọi là thuộc tính và hàm được gọi là phương thức


Xác định đối tượng

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

length; // 0utput: 0
echo $obj->width; // 0utput: 0
 
// Set object properties values
$obj->length = 30;
$obj->width = 20;
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
?>
1

Trong ví dụ dưới đây, $apple và $banana là các thể hiện của lớp Fruit

Ví dụ

class Fruit {
  // ​​Thuộc tính
  public $name;
  public $color;

  // ​​Phương thức
  function set_name($name) {
    $this->name = $name;
  }
  function get_name() {
    return $this->name;
  }
}

$apple = new Fruit();
$banana = new Fruit();
$apple->set_name('Apple');
$banana->set_name('Banana');

echo $apple->get_name();
echo "
";
echo $banana->
?>

Tự mình thử »

Trong ví dụ bên dưới, chúng tôi thêm hai phương thức nữa vào lớp Fruit, để thiết lập và nhận thuộc tính $color

                                    <?php
class Fruit {
  public $name;
  public $color;

  function __construct($name, $color) {
    $this->name = $name;
    $this->color = $color;
  }
  function get_name() {
    return $this->name;
  }
  function get_color() {
    return $this->color;
  }
}

$apple = new Fruit("Apple", "red");
echo $apple->get_name();
echo "<br>";
echo $apple->get_color();
?>

Lập trình hướng đối tượng (OOP) là một mô hình lập trình dựa trên khái niệm lớp và đối tượng. Trái ngược với lập trình thủ tục trong đó trọng tâm là viết các thủ tục hoặc hàm thực hiện các thao tác trên dữ liệu, trong lập trình hướng đối tượng, trọng tâm là tạo ra các đối tượng chứa cả dữ liệu và hàm cùng nhau

Lập trình hướng đối tượng có một số lợi thế so với kiểu lập trình thông thường hoặc thủ tục. Những cái quan trọng nhất được liệt kê dưới đây

  • Nó cung cấp một cấu trúc mô-đun rõ ràng cho các chương trình
  • Nó giúp bạn tuân thủ nguyên tắc "không lặp lại chính mình" (DRY) và do đó làm cho mã của bạn dễ bảo trì, sửa đổi và gỡ lỗi hơn nhiều
  • Nó có thể tạo ra hành vi phức tạp hơn với ít mã hơn và thời gian phát triển ngắn hơn và mức độ tái sử dụng cao

Các phần sau sẽ mô tả cách các lớp và đối tượng hoạt động trong PHP

Mẹo. Một chương trình được viết theo phong cách lập trình thủ tục, nghĩa là một chương trình được tạo từ một hoặc nhiều thủ tục. Trong khi đó, một thủ tục là một tập hợp các câu lệnh lập trình cùng nhau thực hiện một nhiệm vụ cụ thể

Mẹo. Ý tưởng đằng sau nguyên tắc Don't Repeat Yourself (DRY) là giảm sự lặp lại của mã bằng cách trừu tượng hóa mã phổ biến cho ứng dụng và đặt chúng ở một nơi duy nhất và sử dụng lại chúng thay vì lặp lại.


Hiểu các lớp và đối tượng

Lớp và đối tượng là hai khía cạnh chính của lập trình hướng đối tượng. Một lớp là một tập hợp các biến và hàm độc lập, độc lập, hoạt động cùng nhau để thực hiện một hoặc nhiều tác vụ cụ thể, trong khi các đối tượng là các thể hiện riêng lẻ của một lớp

Một lớp hoạt động như một khuôn mẫu hoặc bản thiết kế mà từ đó có thể tạo ra nhiều đối tượng riêng lẻ. Khi các đối tượng riêng lẻ được tạo, chúng kế thừa các thuộc tính và hành vi chung giống nhau, mặc dù mỗi đối tượng có thể có các giá trị khác nhau đối với các thuộc tính nhất định

Ví dụ, hãy nghĩ về một lớp như một bản thiết kế cho một ngôi nhà. Bản thiết kế không phải là một ngôi nhà, mà là một kế hoạch chi tiết của ngôi nhà. Trong khi, một đối tượng giống như một ngôi nhà thực tế được xây dựng theo bản thiết kế đó. Chúng ta có thể xây dựng nhiều ngôi nhà giống hệt nhau từ cùng một bản thiết kế, nhưng mỗi ngôi nhà có thể có màu sơn, nội thất và gia đình bên trong khác nhau, như trong hình minh họa bên dưới

Làm cách nào để tạo đối tượng thủ công trong PHP?

Một lớp có thể được khai báo bằng cách sử dụng từ khóa

length; // 0utput: 0
echo $obj->width; // 0utput: 0
 
// Set object properties values
$obj->length = 30;
$obj->width = 20;
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
?>
0, theo sau là tên của lớp và một cặp dấu ngoặc nhọn (
length; // 0utput: 0
echo $obj->width; // 0utput: 0
 
// Set object properties values
$obj->length = 30;
$obj->width = 20;
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
?>
3), như minh họa trong ví dụ sau

Hãy tạo một tệp PHP có tên là Rectangle. php và đặt mã ví dụ sau vào bên trong nó để mã lớp của chúng ta được tách biệt khỏi phần còn lại của chương trình. Sau đó, chúng tôi có thể sử dụng nó ở bất cứ nơi nào cần thiết bằng cách bao gồm Hình chữ nhật. tập tin php

length + $this->width));
    }
    
    // Method to get the area
    public function getArea(){
        return ($this->length * $this->width);
    }
}
?>

Từ khóa

length; // 0utput: 0
echo $obj->width; // 0utput: 0
 
// Set object properties values
$obj->length = 30;
$obj->width = 20;
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
?>
0 trước các thuộc tính và phương thức trong ví dụ trên, là một , cho biết rằng thuộc tính hoặc phương thức này có thể truy cập được từ mọi nơi. Chúng ta sẽ tìm hiểu thêm về điều này một lát sau trong chương này

Ghi chú. Về mặt cú pháp, các biến trong một lớp được gọi là các thuộc tính, trong khi các hàm được gọi là các phương thức. Ngoài ra tên lớp thông thường được viết bằng PascalCase i. e. mỗi từ nối bắt đầu bằng một chữ cái viết hoa (e. g. Lớp học của tôi)

Khi một lớp đã được xác định, các đối tượng có thể được tạo từ lớp đó bằng từ khóa

length; // 0utput: 0
echo $obj->width; // 0utput: 0
 
// Set object properties values
$obj->length = 30;
$obj->width = 20;
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
?>
1. Các phương thức và thuộc tính của lớp có thể được truy cập trực tiếp thông qua đối tượng này

Tạo một bài kiểm tra tên tệp PHP khác. php và đặt đoạn mã sau vào bên trong nó

length; // 0utput: 0
echo $obj->width; // 0utput: 0
 
// Set object properties values
$obj->length = 30;
$obj->width = 20;
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
?>

Biểu tượng mũi tên (

length; // 0utput: 0
echo $obj->width; // 0utput: 0
 
// Set object properties values
$obj->length = 30;
$obj->width = 20;
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
?>
2) là một cấu trúc OOP được sử dụng để truy cập các thuộc tính và phương thức chứa trong một đối tượng nhất định. Trong khi đó, biến giả
length; // 0utput: 0
echo $obj->width; // 0utput: 0
 
// Set object properties values
$obj->length = 30;
$obj->width = 20;
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
?>
3 cung cấp một tham chiếu đến đối tượng gọi i. e. đối tượng mà phương thức thuộc về

Sức mạnh thực sự của lập trình hướng đối tượng trở nên rõ ràng khi sử dụng nhiều thể hiện của cùng một lớp, như trong ví dụ sau

getArea(); // Output: 0
echo $obj2->getArea(); // Output: 0
 
// Set $obj1 properties values
$obj1->length = 30;
$obj1->width = 20;
 
// Set $obj2 properties values
$obj2->length = 35;
$obj2->width = 50;
 
// Call the methods of both the objects again
echo $obj1->getArea(); // Output: 600
echo $obj2->getArea(); // Output: 1750
?>

Như bạn có thể thấy trong ví dụ trên, việc gọi phương thức

length; // 0utput: 0
echo $obj->width; // 0utput: 0
 
// Set object properties values
$obj->length = 30;
$obj->width = 20;
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
?>
4 trên các đối tượng khác nhau sẽ khiến phương thức đó hoạt động trên một tập hợp dữ liệu khác. Mỗi thể hiện của đối tượng là hoàn toàn độc lập, với các thuộc tính và phương thức riêng của nó, do đó có thể được thao tác độc lập, ngay cả khi chúng thuộc cùng một lớp


Sử dụng Constructor và Destructor

Để làm cho việc lập trình hướng đối tượng trở nên dễ dàng hơn, PHP cung cấp một số phương thức ma thuật được thực thi tự động khi một số hành động nhất định xảy ra bên trong một đối tượng

Ví dụ: phương thức ma thuật

length; // 0utput: 0
echo $obj->width; // 0utput: 0
 
// Set object properties values
$obj->length = 30;
$obj->width = 20;
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
?>
5 (được gọi là hàm tạo) được thực thi tự động bất cứ khi nào một đối tượng mới được tạo. Tương tự, phương thức ma thuật
length; // 0utput: 0
echo $obj->width; // 0utput: 0
 
// Set object properties values
$obj->length = 30;
$obj->width = 20;
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
?>
6 (được gọi là hàm hủy) được thực thi tự động khi đối tượng bị hủy. Hàm hủy sẽ dọn sạch mọi tài nguyên được phân bổ cho một đối tượng sau khi đối tượng bị hủy

length + $this->width));
    }
    
    // Method to get the area
    public function getArea(){
        return ($this->length * $this->width);
    }
}
?>
1

Đoạn mã PHP trong ví dụ trên sẽ cho kết quả như sau

Lớp học "MyClass" đã được bắt đầu.
Đã đến cuối tệp.
Lớp "MyClass" đã bị hủy.

Hàm hủy được gọi tự động khi tập lệnh kết thúc. Tuy nhiên, để kích hoạt hàm hủy một cách rõ ràng, bạn có thể hủy đối tượng bằng cách sử dụng hàm PHP

length; // 0utput: 0
echo $obj->width; // 0utput: 0
 
// Set object properties values
$obj->length = 30;
$obj->width = 20;
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
?>
7, như sau

length + $this->width));
    }
    
    // Method to get the area
    public function getArea(){
        return ($this->length * $this->width);
    }
}
?>
3

Bây giờ, mã PHP trong ví dụ trên sẽ tạo ra đầu ra sau

Lớp học "MyClass" đã được bắt đầu.
Lớp "MyClass" đã bị hủy.
Đã đến cuối tệp.

Mẹo. PHP tự động dọn sạch tất cả các tài nguyên được phân bổ trong quá trình thực thi khi tập lệnh kết thúc, e. g. đóng kết nối cơ sở dữ liệu, hủy đối tượng, v.v.

Ghi chú.

length; // 0utput: 0
echo $obj->width; // 0utput: 0
 
// Set object properties values
$obj->length = 30;
$obj->width = 20;
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
?>
8 là một hằng số ma thuật chứa tên của lớp mà nó xuất hiện. Nó trống, nếu nó xảy ra bên ngoài lớp


Mở rộng các lớp thông qua kế thừa

Các lớp có thể kế thừa các thuộc tính và phương thức của một lớp khác bằng cách sử dụng từ khóa

length; // 0utput: 0
echo $obj->width; // 0utput: 0
 
// Set object properties values
$obj->length = 30;
$obj->width = 20;
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
?>
9. Quá trình mở rộng này được gọi là kế thừa. Đây có lẽ là lý do mạnh mẽ nhất đằng sau việc sử dụng mô hình lập trình hướng đối tượng

length + $this->width));
    }
    
    // Method to get the area
    public function getArea(){
        return ($this->length * $this->width);
    }
}
?>
6

Đoạn mã PHP trong ví dụ trên sẽ cho kết quả như sau

Diện tích hình vuông là 400

Như bạn có thể thấy trong ví dụ trên, mặc dù định nghĩa lớp Square không chứa phương thức

length; // 0utput: 0
echo $obj->width; // 0utput: 0
 
// Set object properties values
$obj->length = 30;
$obj->width = 20;
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
?>
4 một cách rõ ràng cũng như thuộc tính
getArea(); // Output: 0
echo $obj2->getArea(); // Output: 0
 
// Set $obj1 properties values
$obj1->length = 30;
$obj1->width = 20;
 
// Set $obj2 properties values
$obj2->length = 35;
$obj2->width = 50;
 
// Call the methods of both the objects again
echo $obj1->getArea(); // Output: 600
echo $obj2->getArea(); // Output: 1750
?>
1 và
getArea(); // Output: 0
echo $obj2->getArea(); // Output: 0
 
// Set $obj1 properties values
$obj1->length = 30;
$obj1->width = 20;
 
// Set $obj2 properties values
$obj2->length = 35;
$obj2->width = 50;
 
// Call the methods of both the objects again
echo $obj1->getArea(); // Output: 600
echo $obj2->getArea(); // Output: 1750
?>
2, nhưng các thể hiện của lớp Square có thể sử dụng chúng, vì chúng được kế thừa từ lớp Rectangle cha

Mẹo. Vì lớp con được dẫn xuất từ ​​lớp cha nên nó còn được gọi là lớp dẫn xuất và lớp cha của nó được gọi là lớp cơ sở


Kiểm soát khả năng hiển thị của các thuộc tính và phương thức

Khi làm việc với các lớp, bạn thậm chí có thể hạn chế quyền truy cập vào các thuộc tính và phương thức của nó bằng cách sử dụng từ khóa khả năng hiển thị để kiểm soát tốt hơn. Có ba từ khóa hiển thị (từ hiển thị nhiều nhất đến ít hiển thị nhất).

length; // 0utput: 0
echo $obj->width; // 0utput: 0
 
// Set object properties values
$obj->length = 30;
$obj->width = 20;
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
?>
0,
getArea(); // Output: 0
echo $obj2->getArea(); // Output: 0
 
// Set $obj1 properties values
$obj1->length = 30;
$obj1->width = 20;
 
// Set $obj2 properties values
$obj2->length = 35;
$obj2->width = 50;
 
// Call the methods of both the objects again
echo $obj1->getArea(); // Output: 600
echo $obj2->getArea(); // Output: 1750
?>
4,
getArea(); // Output: 0
echo $obj2->getArea(); // Output: 0
 
// Set $obj1 properties values
$obj1->length = 30;
$obj1->width = 20;
 
// Set $obj2 properties values
$obj2->length = 35;
$obj2->width = 50;
 
// Call the methods of both the objects again
echo $obj1->getArea(); // Output: 600
echo $obj2->getArea(); // Output: 1750
?>
5, xác định cách thức và từ nơi các thuộc tính và phương thức có thể được truy cập và sửa đổi

  • công khai - Một thuộc tính hoặc phương thức công khai có thể được truy cập ở bất cứ đâu, từ bên trong lớp và bên ngoài. Đây là khả năng hiển thị mặc định cho tất cả các thành viên lớp trong PHP
  • protected — Một thuộc tính hoặc phương thức được bảo vệ chỉ có thể được truy cập từ bên trong chính lớp đó hoặc trong các lớp con hoặc lớp kế thừa i. e. các lớp mở rộng lớp đó
  • riêng tư - Một thuộc tính hoặc phương thức riêng tư chỉ có thể truy cập được từ bên trong lớp định nghĩa nó. Ngay cả các lớp con hoặc kế thừa cũng không thể truy cập các thuộc tính hoặc phương thức riêng

Ví dụ sau sẽ cho bạn thấy khả năng hiển thị này thực sự hoạt động như thế nào

length; // 0utput: 0
echo $obj->width; // 0utput: 0
 
// Set object properties values
$obj->length = 30;
$obj->width = 20;
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
?>
3


Thuộc tính và phương thức tĩnh

Ngoài khả năng hiển thị, các thuộc tính và phương thức cũng có thể được khai báo là

getArea(); // Output: 0
echo $obj2->getArea(); // Output: 0
 
// Set $obj1 properties values
$obj1->length = 30;
$obj1->width = 20;
 
// Set $obj2 properties values
$obj2->length = 35;
$obj2->width = 50;
 
// Call the methods of both the objects again
echo $obj1->getArea(); // Output: 600
echo $obj2->getArea(); // Output: 1750
?>
6, giúp chúng có thể truy cập được mà không cần khởi tạo lớp. Các thuộc tính và phương thức tĩnh có thể được truy cập bằng cách sử dụng toán tử phân giải phạm vi (
getArea(); // Output: 0
echo $obj2->getArea(); // Output: 0
 
// Set $obj1 properties values
$obj1->length = 30;
$obj1->width = 20;
 
// Set $obj2 properties values
$obj2->length = 35;
$obj2->width = 50;
 
// Call the methods of both the objects again
echo $obj1->getArea(); // Output: 600
echo $obj2->getArea(); // Output: 1750
?>
7), như thế này.
getArea(); // Output: 0
echo $obj2->getArea(); // Output: 0
 
// Set $obj1 properties values
$obj1->length = 30;
$obj1->width = 20;
 
// Set $obj2 properties values
$obj2->length = 35;
$obj2->width = 50;
 
// Call the methods of both the objects again
echo $obj1->getArea(); // Output: 600
echo $obj2->getArea(); // Output: 1750
?>
8 và
getArea(); // Output: 0
echo $obj2->getArea(); // Output: 0
 
// Set $obj1 properties values
$obj1->length = 30;
$obj1->width = 20;
 
// Set $obj2 properties values
$obj2->length = 35;
$obj2->width = 50;
 
// Call the methods of both the objects again
echo $obj1->getArea(); // Output: 600
echo $obj2->getArea(); // Output: 1750
?>
9

Một thuộc tính được khai báo là tĩnh không thể được truy cập thông qua đối tượng của lớp đó mặc dù có thể truy cập một phương thức tĩnh, như minh họa trong ví dụ sau

length; // 0utput: 0
echo $obj->width; // 0utput: 0
 
// Set object properties values
$obj->length = 30;
$obj->width = 20;
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
?>
8

Từ khóa

length + $this->width));
    }
    
    // Method to get the area
    public function getArea(){
        return ($this->length * $this->width);
    }
}
?>
10 trong ví dụ trên có nghĩa là "lớp hiện tại". Nó không bao giờ đứng trước ký hiệu đô la (
length + $this->width));
    }
    
    // Method to get the area
    public function getArea(){
        return ($this->length * $this->width);
    }
}
?>
11) và luôn theo sau bởi toán tử
getArea(); // Output: 0
echo $obj2->getArea(); // Output: 0
 
// Set $obj1 properties values
$obj1->length = 30;
$obj1->width = 20;
 
// Set $obj2 properties values
$obj2->length = 35;
$obj2->width = 50;
 
// Call the methods of both the objects again
echo $obj1->getArea(); // Output: 600
echo $obj2->getArea(); // Output: 1750
?>
7 (e. g.
length + $this->width));
    }
    
    // Method to get the area
    public function getArea(){
        return ($this->length * $this->width);
    }
}
?>
13)

Từ khóa

length + $this->width));
    }
    
    // Method to get the area
    public function getArea(){
        return ($this->length * $this->width);
    }
}
?>
10 khác với từ khóa
length + $this->width));
    }
    
    // Method to get the area
    public function getArea(){
        return ($this->length * $this->width);
    }
}
?>
15 có nghĩa là "đối tượng hiện tại" hoặc  "phiên bản hiện tại của một lớp". Từ khóa
length + $this->width));
    }
    
    // Method to get the area
    public function getArea(){
        return ($this->length * $this->width);
    }
}
?>
15 luôn đứng trước ký hiệu đô la (
length + $this->width));
    }
    
    // Method to get the area
    public function getArea(){
        return ($this->length * $this->width);
    }
}
?>
11) và theo sau là toán tử
length; // 0utput: 0
echo $obj->width; // 0utput: 0
 
// Set object properties values
$obj->length = 30;
$obj->width = 20;
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
?>
2 (e. g.
length + $this->width));
    }
    
    // Method to get the area
    public function getArea(){
        return ($this->length * $this->width);
    }
}
?>
19)

Ghi chú. Vì các phương thức tĩnh có thể được gọi mà không cần một thể hiện của một lớp (i. e. đối tượng), biến giả

length; // 0utput: 0
echo $obj->width; // 0utput: 0
 
// Set object properties values
$obj->length = 30;
$obj->width = 20;
 
// Read the object properties values again to show the change
echo $obj->length; // 0utput: 30
echo $obj->width; // 0utput: 20
 
 
// Call the object methods
echo $obj->getPerimeter(); // 0utput: 100
echo $obj->getArea(); // Output: 600
?>
3 không có sẵn bên trong phương thức được khai báo là tĩnh

Chúng tôi hy vọng bây giờ bạn đã hiểu các khái niệm cơ bản về lập trình hướng đối tượng. Bạn sẽ tìm thấy nhiều ví dụ hơn về OOP trong phần cơ sở dữ liệu PHP và MySQL

Chúng ta có thể tạo đối tượng trong PHP khô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àm cách nào để tạo đối tượng tiêu chuẩn trong PHP?

Ví dụ ¶ .
Ví dụ #1 Được tạo do kết quả của việc đánh máy thành đối tượng. mảng $obj = (đối tượng)('foo' => 'bar'); .
Ví dụ #2 Được tạo là kết quả của json_decode() $json = '{"foo". "quán ba"}'; .
Ví dụ #3 Khai báo thuộc tính động. $obj = stdClass mới();

Cách khai báo đối tượng trong PHP?

Trong PHP, Đối tượng là kiểu dữ liệu phức hợp (cùng với 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 dựng sẵn hoặc do người dùng định nghĩa. Ngoài các thuộc tính, lớp xác định chức năng liên quan đến dữ liệu.

Làm cách nào để tạo đối tượng trống trong PHP?

Bạn có thể sử dụng stdClass bất cứ khi nào bạn cần một thể hiện đối tượng chung. $o=(object)NULL; -- Nếu một đối tượng được chuyển đổi thành một đối tượng, nó sẽ không bị sửa đổi. Nếu một giá trị của bất kỳ loại nào khác được chuyển đổi thành một đối tượng, thì một thể hiện mới của lớp dựng sẵn stdClass sẽ được tạo. Nếu giá trị là NULL, phiên bản mới sẽ trống.