請定義什麼是stdClass
。 php
stdClass是另外一個很棒的PHP功能。 您能夠建立一個匿名PHP類。 讓咱們來看一個例子。 web
$page=new stdClass(); $page->name='Home'; $page->status=1;
如今,您認爲您還有另外一個類,該類將使用頁面對象初始化並在該對象上執行。 數組
<?php class PageShow { public $currentpage; public function __construct($pageobj) { $this->currentpage = $pageobj; } public function show() { echo $this->currentpage->name; $state = ($this->currentpage->status == 1) ? 'Active' : 'Inactive'; echo 'This is ' . $state . ' page'; } }
如今,您必須使用Page Object建立一個新的PageShow對象。 網站
在這裏,無需爲此編寫新的類模板,您只需使用stdClass即時建立一個類。 this
$pageview=new PageShow($page); $pageview->show();
實際上,我嘗試建立空的stdClass並將速度與空類進行比較。 spa
class emp{}
而後繼續建立1000個stdClasses和emps ...空類大約在1100微秒內完成,而stdClasses則花費了1700微秒。 所以,我想最好是建立一個本身的虛擬類來存儲數據,若是您想如此嚴重地使用對象(數組在寫入和讀取方面都快得多)。 code
一樣 對象
$myNewObj->setNewVar = 'newVal';
產生一個stdClass對象-自動轉換 開發
我今天經過拼寫錯誤發現了這一點: 文檔
$GLOBASLS['myObj']->myPropertyObj->myProperty = 'myVal';
涼!
使用stdClass能夠建立一個具備本身屬性的新對象。 考慮如下示例,該示例將用戶的詳細信息表示爲關聯數組。
$array_user = array(); $array_user["name"] = "smith john"; $array_user["username"] = "smith"; $array_user["id"] = "1002"; $array_user["email"] = "smith@nomail.com";
若是須要表示與對象屬性相同的詳細信息,則能夠按以下所示使用stdClass 。
$obj_user = new stdClass; $obj_user->name = "smith john"; $obj_user->username = "smith"; $obj_user->id = "1002"; $obj_user->email = "smith@nomail.com";
若是您是Joomla開發人員,請參考Joomla文檔中的此示例以進一步瞭解。
若是要快速建立一個新對象來保存有關書籍的某些數據。 您將執行如下操做:
$book = new stdClass; $book->title = "Harry Potter and the Prisoner of Azkaban"; $book->author = "J. K. Rowling"; $book->publisher = "Arthur A. Levine Books"; $book->amazon_link = "http://www.amazon.com/dp/0439136369/";
請訪問該網站-http: //www.webmaster-source.com/2009/08/20/php-stdclass-storing-data-object-instead-array/瞭解更多詳細信息。