我正在使用php7的类型提示。所以我有以下代码
class Uni
{
/**
* @var Student
*
* @ORMManyToOne(targetEntity="AppBundleEntityStudent")
* @ORMJoinColumn(nullable=false)
*/
private $student;
function _construct(){
$this->student= new Student();
}
/**
* Set student
*
* @param AppBundleEntityStudent $student
*
* @return Uni
*/
public function setStudent (Student $student): Uni
{
$this->student= $student;
return $this;
}
/**
* Get student
*
* @return AppBundleEntityStudent
*/
public function getStudent(): Student
{
return $this->student;
}
}
现在,当我尝试为Uni加载新表单时,我会得到此错误
Type error: Return value of AppBundleEntityUni::getStudent() must be an instance of AppBundleEntityStudent, null returned
如何摆脱此错误?我找到了一个无效的解决方案,需要PHP 7.1。但是现在我必须坚持使用PHP 7.0。那么我该如何解决?
您的构造函数中有一个错字,必须在construct
之前出现两个下划线。
function __construct() {
$this->student = new Student();
}
因此,创建对象时$student
是null
。