PHP 警告:从空值创建默认对象 - 混淆

PHP WARNING: Creating default object from empty value - Confused

我在 PHP.INI 中添加了错误和警告,最后 2 个错误已解决,它们主要是 "Creating default object from empty value" - 问题是我不知道从哪里开始。

对于之前的(相同的)错误,它更容易,因为有一个 public class 从当前扩展并实例化了一个对象,所以它所要做的就是将实例嵌套在 !isset条件。

还在这里

public function forward( $forward )
{
     $this->viewBean->_forward = $forward;
}

错误指向 $this。 没有对象实例化,上面的方法是抽象 Class 的一部分,标识为 BaseController 因为我无法从抽象 Class 实例化对象,我真的不知道如何继续调试这个 PHP 警告。

如有不妥请告知,我会回复

Abstract classes are not supported in PHP like this.

您必须将对象存储为局部变量才能'remember'它的数据。

class Example
{
    public $abstract;
    public function forwards($forwards)
    {
        $this->abstract = $this->viewBean;
        $this->abstract->_forwards = $forwards;
    }
    public function viewBean()
    {
        return new OtherClass;
    }
}

// TODO: Add your other class with its Public variable

用法示例:

// <-- for newer supported php versions -->
$exampleClass = (new Example)->forwards("add me!");
echo $exampleClass->abstract->_forwards;

// <-- for depreciated php versions -->
$exampleClass = new Example;
$exampleClass->forwards("add me!");
echo $exampleClass->abstract->_forwards;

虽然这解决了您的问题,但我不明白您为什么要转发变量?您可以使用 extends 创建子 类 继承上下文中保存的属性和方法。

总有 callback 种方法可供您使用。