Trong PHP, Object 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
Các biến, mảng và các đối tượng chính [vô hướng] có thể được truyền sang kiểu dữ liệu đối tượng bằng cách sử dụng toán tử ép kiểu. PHP cung cấp stdClass dưới dạng một lớp trống chung, hữu ích cho việc thêm các thuộc tính một cách linh hoạt và truyền
cú pháp
Để khai báo một đối tượng của một lớp, chúng ta cần sử dụng câu lệnh mới
class myclass { .. .. } $obj=new myclass;
Ví dụ
Bản thử trực tiếp
hello[]; ?>
đầu ra
Điều này sẽ tạo ra kết quả sau -
Hello World
Đối tượng của stdClass bắt đầu bằng null. Chúng ta có thể thêm các thuộc tính động
Ví dụ
Bản thử trực tiếp
name="Deepak"; $obj->age=21; $obj->marks=75; print_r[$obj]; ?>
đầu ra
Điều này sẽ tạo ra kết quả sau -
stdClass Object[ [name] => Deepak [age] => 21 [marks] => 75 ]
Mảng có thể được đánh máy thành đối tượng như sau
Ví dụ
Bản thử trực tiếp
"Deepak", "age"=>21, "marks"=>75]; $obj=[object]$arr; print_r[$obj]; ?>
đầu ra
Điều này sẽ tạo ra kết quả sau -
stdClass Object[ [name] => Deepak [age] => 21 [marks] => 75 ]
Ngược lại, một đối tượng có thể được chuyển thành mảng
Ví dụ
Bản thử trực tiếp
name="Deepak"; $obj->age=21; $obj->marks=75; $arr=[array]$obj; print_r[$arr]; ?>
đầu ra
Điều này sẽ tạo ra kết quả sau -
Biến của bất kỳ loại vô hướng nào cũng có thể được chuyển đổi thành một đối tượng bằng cách truyền kiểu. Giá trị của biến vô hướng trở thành giá trị thuộc tính vô hướng của đối tượng
Một thủ thuật rất ngắn và đơn giản để tạo các đối tượng
hello[]; ?>7 mới mà không phải đặt từng thuộc tính riêng lẻ. Điều này gần giống với ký hiệu đối tượng của JavaScript, nhưng không hoàn toàn thanh lịch
Tạo một đối tượng mới trong JavaScript giống như ví dụ sau
const x = {
a: 'test',
b: 'test2',
c: 'test3'
};
Với PHP, có thể sử dụng kiểu truyền để chuyển đổi một mảng đơn giản thành một đối tượng
hello[]; ?>7, cung cấp cho bạn một cú pháp trông tương tự mặc dù yêu cầu gõ nhiều hơn một chút
hello[]; ?>0
Lưu ý kiểu truyền với
hello[]; ?>9 ngay trước định nghĩa mảng - đây là công việc chuyển đổi định nghĩa mảng đơn giản thành đối tượng
hello[]; ?>7
Tất nhiên, bạn cũng sẽ muốn các thuộc tính được đặt tên và việc truyền một mảng kết hợp một cách khéo léo sẽ làm được điều đó
hello[]; ?>1
Điều gì sẽ xảy ra nếu bạn có hai chỉ mục mảng có cùng khóa? . Vâng, đây là PHP, bạn có thể không ngạc nhiên khi thấy những điều sau đây
hello[]; ?>2
Không có vụ va chạm lớn nào. PHP chỉ cần ghi đè giá trị thuộc tính [trong trường hợp này là ____21] bằng giá trị cuối cùng của khóa ____22 trong mảng. Đây là lý do tại sao
Hello World1 được đặt thành
hello[]; ?>01 chứ không phải
hello[]; ?>02
Ngoài ra, lưu ý ở đây rằng thứ tự của các thuộc tính trong
hello[]; ?>7 có thể không như bạn mong đợi. Có lẽ bạn đang mong đợi
Hello World1 đứng cuối cùng, nhưng không có
Hello World1 nào đứng trước vì
hello[]; ?>06 được đặt so với
hello[]; ?>7 và sau đó nó bị ghi đè [chứ không phải thay thế] bằng định nghĩa sau này
hello[]; ?>08
Vậy là bạn đã có nó - một cách rất đơn giản để có cho mình một
hello[]; ?>7 mới với bộ thuộc tính mong muốn của bạn