php默认对象,从PHP中的空值创建默认对象?

仅在将我的PHP环境升级到PHP 5.4及更高版本后,我才看到此错误。 错误指向以下代码行:

错误:

从空值创建默认对象

码:

$res->success = false;

我首先需要声明我的$res对象吗?

#1楼

尝试这个:

ini_set('error_reporting', E_STRICT);

#2楼

对于PHP <= 5.3,此消息为E_STRICT 。 从PHP 5.4开始,它很不幸地更改为E_WARNING 。 由于E_WARNING消息很有用,因此您不想完全禁用它们。

要摆脱此警告,您必须使用以下代码:

if (!isset($res))

$res = new stdClass();

$res->success = false;

这是完全等效的替换 。 它可以确保PHP默默地做同样的事情-不幸的是现在发出警告-隐式对象创建。 除非绝对确定不存在,否则应始终检查对象是否已存在。 Michael提供的代码通常不好,因为在某些情况下,根据情况的不同,有时可能已在同一位置将对象定义了。

#3楼

引起此问题的原因是您正在分配一个未启动的对象实例。 例如:

您的情况:

$user->email = 'exy@gmail.com';

解:

$user = new User;

$user->email = 'exy@gmail.com';

#4楼

如果您有数组并向其中添加对象,请尝试此操作。

$product_details = array();

foreach ($products_in_store as $key => $objects) {

$product_details[$key] = new stdClass(); //the magic

$product_details[$key]->product_id = $objects->id;

//see new object member created on the fly without warning.

}

这将发送对象 数组以供以后使用〜!

#5楼

只是,

$res = (object)array("success"=>false); // $res->success = bool(false);

要么

$res = (object)array(); // object(stdClass)

$res = new stdClass(); // old method

$res->success = !!0; // bool(false)

$res->success = false; // bool(false)

$res->success = (bool)0; // bool(false)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值