【问题标题】:PHP Warning: Creating default object from empty value inPHP警告:从空值创建默认对象
【发布时间】:2020-04-19 20:20:22
【问题描述】:

我的 php 日志中似乎出现了一个常见错误,但似乎无法根据其他线程解决..

我收到错误:PHP 警告:从空值创建默认对象

指向以下代码:

$status = new \stdClass();

$status->about->requester       = $username;
$status->about->method          = $method;
$status->about->command         = $cmd;

其他帖子都说要使用( $status = new \stdClass(); )或变体。 我都试过了,但错误仍然存​​在。

有什么想法吗?

日志有点大,让我发疯,这是我唯一的错误。

【问题讨论】:

    标签: php object stdclass


    【解决方案1】:

    错误不是关于$status 对象,而是$status->about。先给它分配一个stdClass的实例,错误就会消失。

    $status = new \stdClass();
    
    $status->about = new \stdClass();
    
    $status->about->requester       = 'username';
    $status->about->method          = 'method';
    $status->about->command         = 'cmd';
    

    【讨论】:

    • 不,添加这样的赋值后没有错误。 sandbox.onlinephpfunctions.com/code/…
    • 是的,我确定。 :( 不幸的是,它仍然存在。即使我将沙箱中的确切副本放入 test.php 文件中,它也会显示相同的错误。php --version PHP 7.2.24-0ubuntu0.18.04.4 (cli) (建于:2020 年 4 月 8 日 15:45:57)(NTS)版权所有 (c) 1997-2018 PHP Group Zend Engine v3.2.0,版权所有 (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.24-0ubuntu0.18.04 .4,版权所有 (c) 1999-2018,由 Zend Technologies 提供
    • 好吧,如果你说即使是只包含沙箱代码的文件仍然显示错误,我想你可能会因为 php.ini 中定义的选项而自动附加了一些自定义代码。尝试运行php -i | grep pend 并确保auto_append_fileauto_prepend_file 是空的。然后运行php test.php
    • 没有什么突出的。它也是一个非常新的安装。像。 apt 安装了 apache2 和 php.. 除了一些虚拟主机之外,没有什么真正改变。太奇怪了,非常奇怪。
    • Think 生病只是不得不把它归结为一些奇怪的东西,显然这是一个问题。干杯
    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    • 2013-06-19
    • 2016-07-31
    • 1970-01-01
    相关资源
    最近更新 更多