您好,登錄后才能下訂單哦!
這篇文章主要講解了“怎么創建未定義類PHP對象”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么創建未定義類PHP對象”吧!
在PHP中,如果沒有事先準備好類,需要創建一個未定義類的對象,我們可以采用下面三種方式:
new stdClass()
new class{}
(object)[]
首先是stdClass,這個類是一個空的類模板,是PHP的內部保留關鍵字及類名。可以把它相像成是Java中的Object基類,在Java中,所有類都天然繼承自Object基類。而PHP中的這個stdClass則是完全的一個空的類模板。你自己新創建的類并不是它的子類。但是用這個類模板可以創建一個自己未定義類的對象。當然,這個對象內部沒有任何東西。
1$a = new stdClass();
2var_dump($a);
new class{}呢?做過一段時間開發,接觸過前端js和其他動態語言的應該能猜到,這個是匿名類。一般在參數對象中很常見。它創建出來的對象是可以帶屬性方法的。
1$b = new class{
2 public $p = 1;
3};
4var_dump($b);
最后我們來看到的是使用數組強轉成對象的形式來生成一個對象。
1$c = (object)[
2 'p' => 1
3];
4var_dump($c);
很明顯,數組強轉的形式生成的對象和第一種對象是一個類型的,而且它可以帶屬性也可以不帶。但是,它不能帶方法。
數組強轉方式生成的對象非常的直觀好理解。如果只是屬性對象的封裝,使用這種方式會更加地優雅舒服。復雜的對象生成可以使用匿名類的方式進行生成。而一些僅需要占位的對象,可以使用stdClass的方法,當然用空數組的方式也很方便。
需要注意的是,數組強轉需要遵守類型轉換的規則。比如數字下標的問題。
在日常開發中,我們對于一些接口或者數據庫ORM框架的使用中會經常用這些功能。比如一些ORM框架的插入、修改需要傳入的是只包含屬性的對象。這時候就可以使用上述的方法靈活地生成對象而不用完整的定義類模板了。
感謝各位的閱讀,以上就是“怎么創建未定義類PHP對象”的內容了,經過本文的學習后,相信大家對怎么創建未定義類PHP對象這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。