Tôi nghĩ rằng sẽ dễ dàng hơn nhiều khi thấy vấn đề trong ví dụ mã hơn là viết câu hỏi ngay từ đầu. Đây là mã php của tôi:Php loại gợi ý không nhận được cùng với các giao diện và các lớp trừu tượng?
<?php
interface AnInterface
{
public function method();
}
class AClass implements AnInterface
{
public function method()
{
echo __METHOD__;
}
}
abstract class AnAbstractClass
{
abstract public function method(AnInterface $Object);
}
class ConcreteClass extends AnAbstractClass
{
public function method(AClass $Object)
{
$Object->method();
}
}
$Object1 = new ConcreteClass();
$Object2 = new AClass();
$Object1->method($Object2);
Đoạn mã trên gây ra các lỗi sau:
Fatal error: Declaration of ConcreteClass::method() must be compatible with that of AnAbstractClass::method()
Vấn đề là php dường như không được công nhận chữ ký của AnAbstractClass :: phương pháp và ConcreteClass: : phương pháp tương thích. Tôi có làm điều gì sai? Cảm ơn!
Xin vui lòng, * vui lòng * tham gia vào thói quen đăng thông báo lỗi mà mã của bạn đang tạo. Đăng mã mà không đăng đầu ra (hoặc lỗi) là vô dụng. – meagar