stdClass类是PHP的一个内部保留类,初始时没有成员变量也没成员方法,所有的魔术方法都被设置为NULL,可以使用其传递变量参数,但是没有可以调用的方法。stdClass类可以被继承,只是这样做没有什么意义。
该类是PHP的保留类,并不是所有类的基类。
复制代码 代码如下:
<?php
class foo {}
$bar = new foo();
echo $bar instanceof stdClass?'yes':'no';
//output:no
另外一个例子:
复制代码 代码如下:
<?php
// CTest does not derive from stdClass
class CTest {
public $property1;
}
$t = new CTest;
var_dump($t instanceof stdClass); // false
var_dump(is_subclass_of($t, 'stdClass')); // false
echo get_class($t) . "\n"; // 'CTest'
echo get_parent_class($t) . "\n"; // false (no parent)
?>
任何用(object)强制转换都会得到一个stdClass的实例。
理解PHP中的stdClass类 stdClass在PHP5才开始被流行。而stdClass也是zend的一个保留类。stdClass是PHP的一个基类,
所有的类几乎都继承这个类,所以任何时候都可以被new,可以让这个变量成为一个object。同时,
这个基类又有一个特殊的地方,就是没有方法。凡是用new stdClass()的变量,
都不可能会出现$a->test()这种方式的使用。PHP5的对象的独特性,对象在任何地方被调用,
都是引用地址型的,所以相对消耗的资源会少一点。在其它页面为它赋值时是直接修改,而不是引用一个拷贝。
以上的定义大多数都是正确的,但是一个致命性的诊断错误: stdClass是PHP的一个基类,所有的类几乎都继承这个类。 看一个简单的例子:
复制代码 代码如下:
class EmptyClass {
}
$object = new EmptyClass();
if ($object instanceof stdClass) {
echo 'yes';
}else{
echo 'no';
}
执行代码,输出”no”,这个例子充分说明了stdClass类并不是所有类的基类。它仅仅是PHP的一个保留类,或者说一个类似于strlen函数这样的一个角色。 我们从源码的维度看看stdClass类的实现,它注册的位置在 Zend/zend_buildin_functions.c文件中。如下:
复制代码 代码如下:
ZEND_MINIT_FUNCTION(core) { /* {{{ */
zend_class_entry class_entry;
/* 注册stdClass 类 */
INIT_CLASS_ENTRY(class_entry, "stdClass", NULL);
zend_standard_class_def = zend_register_internal_class(&class_entry TSRMLS_CC);
/* 注册默认类,接口,如Exception类,SPL中的一些类等 */
zend_register_default_classes(TSRMLS_C);
return SUCCESS;
}
/* }}} */
这是zend_builtin_module的模块初始化函数,在PHP内核进行模块初始化操作时会自动加载这个函数, 这样,stdClass类的注册操作也就会被执行了。从这段代码可以看出,stdClass类是一个没有成员变量也没有成员方法的类。 它的所有的魔术方法,父类、接口等在初始化时都被设置成NULL。由于在PHP中对于一个类我们无法动态的添加方法, 所以这个类只能用来处理动态属性,这也是我们一种常见的用法。
总结一下:
stdClass类是PHP的一个内部保留类,初始时没有成员变量也没成员方法,所有的魔术方法都被设置为NULL,可以使用其传递变量参数,但是没有可以调用的方法。stdClass类可以被继承,只是这样做没有什么意义。
官方手册参考:http://www.php.net/manual/en/language.oop5.basic.php#92123
相关推荐:
目前国内最好的AI人工智能软件:未来新篇章
SEO本站:提升网站流量与排名的秘密武器,荆门专业的抖音seo
SEO针对中小企业的增长潜力:如何通过精准优化抢占市场先机,网络推广和营销就选y火10星评价
SEO差价如何用SEO优化帮助企业实现成本与效益的完美平衡,盐城seo收费贵吗
seo需要了解什么,seo需要学些什么内容 ,ovo ai
ChatGPT:基于Transformer技术的语言模型,开创人工智能未来,AI独战OK
ChatGPT为什么打不开了?揭秘背后的原因与解决办法,ai业务后端
用AI修改文章,提升写作效率与质量的新时代
ChatGPT模型进化历程:人工智能的智慧革命,ai 喷枪星空
SEO数量-如何提升你的网站排名与流量?,射阳seo优化五星服务
ChatPartner无法连接网络?解决方案,让你的聊天体验更顺畅!,如何用ai给自己写作文
AI写作技巧,让创作事半功倍!
SEO精通:让你的内容在搜索引擎中脱颖而出,跨境电商 推广营销
SEO自行:提升网站流量的秘密武器,邹平县个人网站建设建议
seo需要会什么技术呢,seo需要会什么技术呢知乎 ,红色框ai
SEO文案:如何通过巧妙布局提升网站排名,吸引更多流量,娄底网站建设工作文案
用AI创作的文章算原创吗?深度背后的逻辑与意义
ChatGPT3.5最新版:智能对话新纪元,带你进入AI的未来世界,ai苔藓生长
SEO努力:提升网站排名的关键策略,网站建设微企动力
AI人工智能:改变未来的科技革命
Chatget免费网站版无需登录,畅享无限对话体验!,工业 Ai 视觉检测
优化软件:让电脑性能焕然一新,提升效率的秘密武器,大理网站推广招聘信息最新
SEO抢权:如何在竞争激烈的市场中占得先机,正规网站建设口碑好
在线AI文章生成:内容创作新革命
优化提长:让企业效能提升的秘密武器,长沙网站建设创意
什么是亚马逊seo策略,亚马逊的seo推广是什么 ,天天学术ai写作优惠券
ChatGPT一经发布,便受到了用户的狂热追捧,引爆人工智能热潮,十代ai达人办公本
SEO关键词利器:如何借助精准关键词提升网站流量与排名,ai绘画客户
OpenArtAI如何进入:数字艺术的未来之门,分析海报ai
丹东seo是什么怎么选,丹东spr ,黑发ai图
seo资源指的是什么,seo资料 ,绿眼AI
SEO售产-数字营销新战场,助力企业实现盈利增长,去哪找自贡网站建设
SEO量:提升网站流量和排名的关键法则,德兴seo
GPT-3.5免费吗?揭秘AI智能助手的未来与收费模式,ai 美美
SEO大量优化:如何通过精准策略提升网站流量,突破搜索引擎排名瓶颈,吕梁本地网站推广平台
SEO外链技巧:提升网站排名的秘密武器,ai视频生日祝福
OpenAI无法验证支付方式?解决方案与常见问题解析,你好月光ai
seo网站是什么东西,seo网站是什么东西啊 ,ai锯齿消失
优化,让生活与工作更高效-从个人到企业的全面升级,广州百度seo费用
SEO运营工作是什么,seo公司运营 ,720516AI
ChatGPT国内版:为中国用户量身定制的智能助手,开启AI新纪元,ai文章赚钱
seo需要做些什么,做seo的 ,超级ai地图
AI缩写文档:革新文档管理与自动化的未来,ai聊天中文
未来写作新方式原创AI文章的无限可能
ChatGPT:打破语言障碍,理解与沟通的新时代,交通轨道ai
为什么seo对企业重要,seo对企业进行网络营销的价值 ,ai李沁换脸鲍鱼
ChatGPT美区要梯子吗?轻松畅享全球智能聊天体验,ai音位
SEO特点与实施策略:提升网站流量与排名的关键,定西抖音seo价格查询
目前最火的AI软件有哪些?深度解析必备工具
SEO项目:如何通过精确优化提升企业网站排名与转化率,武汉做网站优化的公司