请定义什么是stdClass
。
#1楼
stdClass是另一个很棒的PHP功能。 您可以创建一个匿名PHP类。 让我们来看一个例子。
$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即时创建一个类。
$pageview=new PageShow($page);
$pageview->show();
#2楼
实际上,我尝试创建空的stdClass并将速度与空类进行比较。
class emp{}
然后继续创建1000个stdClasses和emps ...空类大约在1100微秒内完成,而stdClasses则花费了1700微秒。 因此,我想最好是创建一个自己的虚拟类来存储数据,如果您想如此严重地使用对象(数组在写入和读取方面都快得多)。
#3楼
同样
$myNewObj->setNewVar = 'newVal';
产生一个stdClass对象-自动转换
我今天通过拼写错误发现了这一点:
$GLOBASLS['myObj']->myPropertyObj->myProperty = 'myVal';
凉!
#4楼
使用**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文档中的此示例以进一步了解。
#5楼
如果要快速创建一个新对象来保存有关书籍的某些数据。 您将执行以下操作:
$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/了解更多详细信息。