加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

PHP如何定义一个空对象

发布时间:2020-05-31 12:32:08 所属栏目:PHP 来源:互联网
导读:本文章向大家介绍php如何定于空对象,需要的朋友可以参考一下。

使用新数组我这样做:

$aVal = array();

$aVal[key1][var1] = "something";

$aVal[key1][var2] = "something else";

对象是否有类似的语法

(object)$oVal = "";

$oVal->key1->var1 = "something";

$oVal->key1->var2 = "something else";

答案当然是不行,那么, PHP如何定义一个空对象?

stdClass是默认的PHP对象。stdClass没有属性,方法或父级。它不支持魔术方法,并且不实现任何接口。

将标量或数组转换为Object时,将获得stdClass的实例。只要需要通用对象实例,就可以使用stdClass。

创建“空”对象的标准方法是:

$oVal = new stdClass();

但是,如果PHP> = 5.4,我个人更喜欢使用:

$oVal = (object)[];

它更短,我个人认为它更清晰,因为stdClass可能误导新手程序员(即“嘿,我想要一个对象,而不是一个类!”......)。

与PHP <5.4相同的是:

$oVal = (object) array();

(object)[]相当于new stdClass()。

stdClass:通过类型转换为对象创建的。

如果将对象转换为对象,则不会对其进行修改。如果将任何其他类型的值转换为对象,则会创建stdClass内置类的新实例。

但请记住,空($ oVal)返回false,

因为没有属性的对象不再被视为空。

关于你的例子,如果你写:

$oVal = new stdClass();

$oVal->key1->var1 = "something"; // PHP creates a Warning here

$oVal->key1->var2 = "something else";

PHP创建以下警告,隐式创建属性key1(对象本身)

警告:从空值创建默认对象

如果您的配置(请参阅错误报告级别)向浏览器显示此警告,则可能会出现问题。这是另一个完整的主题,但快速而肮脏的方法可能是使用错误控制操作符(@)来忽略警告:

$oVal = new stdClass();

@$oVal->key1->var1 = "something"; // the warning is ignored thanks to @

$oVal->key1->var2 = "something else";

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读