我在PHP.INI中包含错误和警告,最后2个错误已经解决,它们主要是"从空值创建默认对象" - 问题是我不知道从哪里开始。
使用上一个(相同)错误,因为从当前扩展了一个公共类并且实例化了一个对象,所以只需将实例嵌套在!isset
条件中就更容易了。
然而,这里
public function forward( $forward )
{
$this->viewBean->_forward = $forward;
}
错误指向$ this。 没有对象实例化,上面的方法是标识为 BaseController 的抽象类的一部分因为我无法从抽象类实例化对象,所以我真的不知道如何继续调试这个PHP警告。
如果有任何信息不对,请告诉我,我会发回评论
答案 0 :(得分:1)
这样的PHP不支持抽象类。
您必须将对象存储为本地变量才能记住'它的数据。
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
方法。