请定义什么是stdClass 。
#1楼
stdClass是另一个很棒的PHP功能。 您可以创建一个匿名PHP类。 让我们来看一个例子。
1$page=new stdClass(); 2$page->name='Home'; 3$page->status=1;
现在,您认为您还有另一个类,该类将使用页面对象初始化并在该对象上执行。
1<?php 2class PageShow { 3 4 public $currentpage; 5 6 public function __construct($pageobj) 7 { 8 $this->currentpage = $pageobj; 9 } 10 11 public function show() 12 { 13 echo $this->currentpage->name; 14 $state = ($this->currentpage->status == 1) ? 'Active' : 'Inactive'; 15 echo 'This is ' . $state . ' page'; 16 } 17}
现在,您必须使用Page Object创建一个新的PageShow对象。
在这里,无需为此编写新的类模板,您只需使用stdClass即时创建一个类。
1 $pageview=new PageShow($page); 2 $pageview->show();
#2楼
实际上,我尝试创建空的stdClass并将速度与空类进行比较。
class emp{}
然后继续创建1000个stdClasses和emps ...空类大约在1100微秒内完成,而stdClasses则花费了1700微秒。 因此,我想最好是创建一个自己的虚拟类来存储数据,如果您想如此严重地使用对象(数组在写入和读取方面都快得多)。
#3楼
同样
$myNewObj->setNewVar = 'newVal';
产生一个stdClass对象-自动转换
我今天通过拼写错误发现了这一点:
$GLOBASLS['myObj']->myPropertyObj->myProperty = 'myVal';
凉!
#4楼
使用stdClass可以创建一个具有自己属性的新对象。 考虑以下示例,该示例将用户的详细信息表示为关联数组。
1$array_user = array(); 2$array_user["name"] = "smith john"; 3$array_user["username"] = "smith"; 4$array_user["id"] = "1002"; 5$array_user["email"] = "smith@nomail.com";
如果需要表示与对象属性相同的详细信息,则可以按如下所示使用stdClass 。
1$obj_user = new stdClass; 2$obj_user->name = "smith john"; 3$obj_user->username = "smith"; 4$obj_user->id = "1002"; 5$obj_user->email = "smith@nomail.com";
如果您是Joomla开发人员,请参考Joomla文档中的此示例以进一步了解。
#5楼
如果要快速创建一个新对象来保存有关书籍的某些数据。 您将执行以下操作:
1$book = new stdClass; 2$book->title = "Harry Potter and the Prisoner of Azkaban"; 3$book->author = "J. K. Rowling"; 4$book->publisher = "Arthur A. Levine Books"; 5$book->amazon_link = "http://www.amazon.com/dp/0439136369/";
请访问该网站-http: //www.webmaster-source.com/2009/08/20/php-stdclass-storing-data-object-instead-array/了解更多详细信息。