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

PHP警告:从中的空值创建默认对象,php,object,stdclass,Php,Object,Stdclass,我在php日志中发现了一个常见错误,但似乎无法基于其他线程解决 我收到错误:PHP警告:从中的空值创建默认对象 指向以下代码: $status = new \stdClass(); $status->about->requester = $username; $status->about->method = $method; $status->about->command = $cmd; 其他帖子都说要使用($

我在php日志中发现了一个常见错误,但似乎无法基于其他线程解决

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

指向以下代码:

$status = new \stdClass();

$status->about->requester       = $username;
$status->about->method          = $method;
$status->about->command         = $cmd;
其他帖子都说要使用($status=new\stdClass();)或其变体。 我都试过了,但错误依然存在

有什么想法吗


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

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

$status = new \stdClass();

$status->about = new \stdClass();

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

否,添加此分配后没有错误。是的,我肯定(不幸的是,在这一点上它仍然存在。即使我将沙箱中的精确副本放入test.php文件中,它也会显示相同的错误。php——版本PHP7.2.24-0ubuntu0.18.04.4(cli)(构建时间:2020年4月8日15:45:57)(NTS)版权(c)1997-2018 php组Zend Engine v3.2.0,版权(c)1998-2018 Zend Technologies和Zend OPcache v7.2.24-0ubuntu0.18.04.4,版权所有(c)1999-2018年,Zend Technologies Well,如果你说即使只包含来自沙箱的代码的文件仍然显示错误,我想你可能会因为php.ini中定义的选项而自动附加一些自定义代码。尝试运行
php-I | grep pend
,确保
auto_append_file
auto_prepend_file
是emty、 然后运行
php test.php
。没有什么特别的。这也是一个非常新的安装。比如.apt安装了apache2和php。除了一些vhosts之外,没有什么真正的改变。太奇怪了,奇怪得让人痛苦了。我想我不得不把这归结为一些奇怪的事情,显然这是一个问题。干杯