PHP中的stdClass_PHP教程

WBOY
Libérer: 2016-07-13 09:56:12
original
941 Les gens l'ont consulté

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
);
Copier après la connexion

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

您可能感兴趣的文章

  • 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,也就是说极为抽象的,每一个下层的...
Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal