Я использую компонент laravel orm и наблюдал следующее, когда я развернул сервер жизни.Необязательный параметр Использование при реализации интерфейса
я получил ошибку
Declaration of Illuminate\Database\Eloquent\Collection::toJson()
must be compatible
with Illuminate\Support\Contracts\JsonableInterface::toJson($options = 0)
Я развернутого на сервере Ubuntu, который имеет PHP v5.4.6 установлен. Не получилось это, работая на моей локальной машине, на которой установлен php v5.3.5.
Декларация интерфейс, как показано ниже
public function toJson($options = 0);
в то время как реализация абстрактного класса
public function toJson()
{
return json_encode($this->toArray());
}
Я не думаю, что это будет проблемой, так как объявление интерфейса имеет свой параметр, как опция и абстрактный класс реализует его, не требуя параметра.
Это вещь с php v5.4 и какое преимущество она предлагает?
Кроме того, что является лучшим подходом к фиксации этого? Интерфейс реализован множеством классов, поэтому я стараюсь не нарушать зависимости; вы посоветуете понизить мою версию php на сервере life?
Я бы посоветовал фактически реализовать необязательный аргумент. – rmobis