stdClass LÀ GÌ? LÀM THẾ NÀO ĐỂ CÓ PROPERTIES ĐỘNG TRONG PHP?

AUTHOR: dang.nh


Chào các bạn, mình là Đăng, và mình đã trở lại rồi đâyy 🙂

Nếu bạn là 1 người rất hay tò mò nghịch ngợm, giống tôi, thì chắc hẳn bạn đã từng lang thang trong core của mấy thằng PHP framework như Laravel hay Yii, và chắc cmn cú là các bạn cũng đã thấy từ khóa stdClass quanh quẩn trong đó vài lần rồi. Okay vậy bây giờ chúng ta cùng sắn tay áo lên để tìm hiểu xem nó là cái quái gì mà bọn dev khủng nó thích dùng thế nhở?

Rồi, nếu bạn có biết 1 chút Java, thì chắc hẳn bạn nhìn đoạn code khai báo 1 object này rất quen phải không?

Trước khi chưa có PHP 5.4, thì điều có mấy properties kiểu a,b,c mà không cần khai báo trước trong class rồi thì get(), set() là điều không thể. Nhưng may mắn thay, giờ đây với PHP version > 5.4, ta có thể tạo 1 object mà đếch cần class nào cả, các properties của class cũng chả cần định nghĩa luôn, thích nhét bao nhiêu vào cũng được hết. Trông nó như này:

Thấy object được tạo từ class gì không? stdClass đó!!! Đôi khi tất cả những gì chúng ta cần là 1 cái class để ném vào 1 vài properties đơn giản thôi, nhưng thay vì tạo 1 class mới, khai báo properties các kiểu con đà điểu, rồi thì use nó, rồi mới new được object, chúng ta chỉ cần đơn giản new luôn từ stdClass là xong!

Thậm chí cast trực tiếp từ 1 array sang cũng được luôn:

Tóm lại, sử dụng object rất là tiện, tiện hơn array rất nhiều, nhất là với CSDL lớn và phức tạp (nested array etc…). Vì thế nên mới có sự ra đời của stdClass (std là viết tắt của standard). Nhưng nếu ai nói bạn stdClass là base class thì đánh nó ngay nhé, phải đánh luôn & mạnh vào. stdClass không phải base biếc gì cả nhé. Vui lòng nhớ dùm.

Xin hết, tuần sau hẹn gặp lại các bạn với chủ đề là Trait – PHP nhé 😉 Peace out!

– Dang.NH

Post Views: 43

Comments

comments