get_object_vars($obj)
ve (array) $obj
arasında herhangi bir fark var mı?
Her ikisi de nesnesinin genel özelliklerini geri görünmektedir.
Hangisi daha iyi?
Bu tam olarak doğru değildir.
get_object_vars
kapsamı duyarlıdır ve tüm visible özelliklerini dönecektir. Eğer sınıfın dışında onu ararsanız, yalnızca ortak üyeleri alırsınız; Bir türetilmiş sınıf, sen korumalı ve kamu üyeleri alırsınız; ve sınıfın kendisi, tüm üyelerini alırsınız. Dizi anahtarları özellik adları temsil ve karıştırılmış değildir.
(array)
en az PHP 5.3.0 üzerinde, döner döküm, tüm nesne özellikleri, kamu ve aksi. Özelliklerinin ismi kendi koruma düzeyine göre karıştırıldıysa edilir:
public
: özellik adları aynı, karıştırılmış değilprotected
: özelliği için kilit isim bir *
ile başlarprivate
: özellik için bir anahtar adı sınıfın adıyla başlarcasting to an array daha fazla bilgi almak için bkz.
Ben daha iyi bir durumunuza en uygun olduğunu anlamak mümkün olacak umuyoruz.
Daha iyi ne gerçekten ihtiyaç budur. get_object_vars () özel ve korumalı üyeleri görünmüyor. Bir örnek için kılavuzda this comment bakın.