【发布时间】:2016-03-31 17:20:21
【问题描述】:
我有一个 Laravel 4.2 应用程序,它可以与 PHP5 一起使用,没有任何问题。因为我安装了一个运行 PHP7 的新 vagrant box,所以当我运行一个函数名与类名(关系函数)相同的模型时,就会出现错误,如下所示:
<?php
use Illuminate\Database\Eloquent\SoftDeletingTrait;
class Participant extends \Eloquent
{
use SoftDeletingTrait;
[...]
public function participant()
{
return $this->morphTo();
}
[...]
}
我收到以下错误消息:
在 PHP 的未来版本中,与其类同名的方法将不再是构造函数;参与者有一个不推荐使用的构造函数(视图:...)
所以直到今天我才知道,在 PHP4 中同名的方法是类的构造函数。唔。我真的是一个糟糕的程序员......但在这种情况下,根据我对 PHP7 中发生的事情的理解,他们纠正了我的失败,因为我从来不想使用这个函数作为构造函数,因为它只定义了一个 Eloquent 关系。
但是我怎样才能摆脱这个消息呢?据我了解,在 PHP4 中我的代码有问题,但在 PHP7 中没有,对吧?如果没有必要,我不想重构这个函数,因为它在多个地方使用。
谁能解释我做错了什么以及为什么它适用于较旧的 PHP 版本?
谢谢!
【问题讨论】:
-
“嗯。我真的是一个糟糕的程序员......” :-D
标签: php laravel-4 constructor