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
种方法可供您使用。
我在 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
种方法可供您使用。