PHP中的stdClass是什么?

请定义什么是stdClassphp


#1楼

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();

#2楼

实际上,我尝试建立空的stdClass并将速度与空类进行比较。 spa

class emp{}

而后继续建立1000个stdClasses和emps ...空类大约在1100微秒内完成,而stdClasses则花费了1700微秒。 所以,我想最好是建立一个本身的虚拟类来存储数据,若是您想如此严重地使用对象(数组在写入和读取方面都快得多)。 code


#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/了解更多详细信息。

相关文章
相关标签/搜索