Heim  >  Artikel  >  Backend-Entwicklung  >  PHP中的stdClass_PHP教程

PHP中的stdClass_PHP教程

WBOY
WBOYOriginal
2016-07-13 09:56:12935Durchsuche

PHP中的stdClass

如果所有的Class都应该存在于一个默认的层级中的话,那么最顶层应该是最为一般的Class,也就是说极为抽象的,每一个下层的Class均比其上层的Class(即父类)更加专门化。基于该思想,在PHP中,这个顶层的Class被命名为"stdClass",且作为一个"Standard Class",你可以把它看成是一个不含任何属性和方法的类。

使用stdClass的目的: 在运行时添加属性到基对象(Base Object)

问题

你想创建一个对象,并在其中添加一些属性,但是你却不想把它作为一个明确的类正式地定义它。这一点在一些情况下是相当有用的,例如当你定义了一个方法来返回带有某些属性(不确定的)的对象时,如通过 mysql_fetch_object( ) 返回结果集对象的时,对某些属性不确定是否存在,又不想一个个isset检验的时候。

解决方案

使用PHP内建类,stdClass ,例如:

<?php $sql="SELECT name,email FROM users WHERE id=$id";
$dbh=mysql_query($sql);
$obj=mysql_fetch_object($dbh);
if(!$obj) $obj=new StdClass;
$array=array(
	'name'=>$obj->name,
	'email'=>$obj->email
);

最后, 这种在运行时为一个空对象设置属性的用法,不难看出也会给我们带来一些问题,如你无法真正确定这个对象是谁,目的是什么。

您可能感兴趣的文章

  • php中$this、static、final、const、self 等几个关键字的用法
  • PHP 字符串转义函数(addslashes,stripslashes)详解
  • php中empty,is_null,isset的区别详解
  • 如何删除PHP数组中的元素(unset,array_splice)?
  • php在数组中查找某个值是否存在(in_array(),array_search(),array_key_exists())
  • php字符串替换函数str_replace速度比preg_replace快
  • php中在变量和函数前加static关键字之后的区别
  • php中关于抽象(abstract)类和抽象方法的问题解析

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/989195.htmlTechArticlePHP中的stdClass 如果所有的Class都应该存在于一个默认的层级中的话,那么最顶层应该是最为一般的Class,也就是说极为抽象的,每一个下层的...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn