33
A
回答
41
這並不完全正確。
get_object_vars
範圍是敏感的,將返回所有可見性能以外靜態性質不論其visbility的。如果你從課外來電話,你只會得到公衆成員;從派生類中,您將獲得受保護的和公共成員;並從課堂本身,你會得到所有的成員。數組鍵表示屬性名稱,並且沒有被損壞。
(array)
強制返回,至少在PHP 5.3.0上返回所有對象屬性public和other。
public
:屬性的名稱是根據其保護級別錯位不缺胳膊少腿,相同屬性名稱protected
:物業鍵名始於一個*
private
:物業鍵名以類名開頭
請參閱casting to an array瞭解更多信息。
我希望你能更好地理解哪一個最適合你的情況。
2
get_object_vars()
函數是實現所需效果的更清晰的方法。儘管將它轉換爲數組也是一種解決方案,但在更高版本的PHP中,此行爲可能會發生變化。
我不知道兩個方法之間是否存在實際差異,但上面的參數會導致我使用該函數。
+2
爲什麼數組的性能不如函數可靠?你有支持它的文檔嗎? – zneak 2010-03-24 23:50:57
1
更好的是你實際需要的是什麼。 get_object_vars()不顯示私有和受保護的成員。請參閱本手冊中的this comment。
相關問題
- 1. ReflectionObject與轉換爲數組與get_object_vars檢索公共變量
- 2. 強制轉換爲Python ctypes數組
- 3. 在Python中強制轉換與強制
- 4. 強制將sql.ColumnName強制轉換爲
- 5. 這個對象是強制轉換還是數組強制轉換?
- 6. Sql強制轉換爲xml,然後運行.value強制轉換
- 7. Db2強制轉換爲
- 8. ValidationError:強制轉換爲ObjectID
- 9. 強制轉換爲qsort函數指針
- 10. 將int函數強制轉換爲void *
- 11. 強制轉換爲函數指針?
- 12. 將IEnumerable強制轉換爲表達式樹中的數組Func
- 13. 將空JSON數組強制轉換爲字典類型
- 14. 如何將枚舉強制轉換爲字節數組?
- 15. C#將數組強制轉換爲元素類型
- 16. 強制JSON.NET將xml轉換爲json數組
- 17. Dataweave XML-XML轉換「無法強制將a:數組轉換爲:字符串」。
- 18. 顯式強制轉換爲int並隱式強制轉換爲浮點型
- 19. PHP:get_class_vars()與get_object_vars()
- 20. 奇怪的java行爲與強制轉換爲原始類型
- 21. 如何強制仿函數應用於強制轉換參數
- 22. 隱式強制轉換或正常強制轉換除以2個整數?
- 23. 行爲時,類型強制轉換
- 24. 強制轉換爲Func vs new Func?
- 25. '*'不能被強制轉換爲Fixnum(TypeError)
- 26. Edge.js強制轉換爲字符串expandoobject
- 27. 在awk中強制轉換爲int
- 28. 強制IKVMC將JAR轉換爲DLL?
- 29. 將NSURL **強制轉換爲CFURLRef *
- 30. 如何強制轉換爲在MySQL()
對於'(array)'強制類型,爲私有成員添加'*',私有成員的* classname *將被包含在空字節('\ x00')中,所以嚴格來說就是'\ x00 * \ x00 '對於受保護的成員,對於私人成員也是如此:'\ x00className \ x00'。相關:** [數組到對象和數組在PHP中 - 有趣的行爲](http://stackoverflow.com/questions/6325447/array-to-object-and-object-to-array-in-php-interesting -behaviour/6325631#6325631)** – hakre 2011-07-09 09:33:48
另一個區別(至少在PHP 5中):使用'get_object_vars',如果鍵是數字,鍵將被轉換爲int,其中cast會返回字符串索引:https://3v4l.org/ 2Wb9j – Sherbrow 2016-08-30 15:24:03