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ớpMộ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ọncú phápclass 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ượngCá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
?> 1Trong 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ượngLớ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 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ụ sauHã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àyGhi 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àyTạ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ủylength + $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ư saulength + $this->width));
}
// Method to get the area
public function getArea(){
return ($this->length * $this->width);
}
}
?> 3Bâ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ừaCá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ượnglength + $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 chaMẹ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ứcKhi 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ĩnhNgoà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
?> 9Mộ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
?> 8Từ 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ĩnhChú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. |