source

다른 인터페이스로 구성된 인터페이스를 만드는 방법은 무엇입니까?

manysource 2023. 8. 8. 21:42

다른 인터페이스로 구성된 인터페이스를 만드는 방법은 무엇입니까?

인터페이스를 만들고 싶습니다.IFoo그것은 기본적으로 사용자 지정 인터페이스의 조합입니다.IBar그리고 몇 가지 기본 인터페이스,ArrayAccess,IteratorAggregate,그리고.SerializablePHP는 다른 인터페이스를 구현하는 인터페이스를 허용하지 않는 것 같습니다. 시도할 때 다음 오류가 발생합니다.

PHP 구문 분석 오류: 구문 오류, 예기치 않은 T_IMPLENS, 줄 Y의 X에 '{'가 필요합니다.

인터페이스가 다른 인터페이스를 확장할 수 있다는 것은 알고 있지만, PHP는 다중 상속을 허용하지 않고 네이티브 인터페이스를 수정할 수 없기 때문에 이제 막혔습니다.

내에서 다른 인터페이스를 복제해야 합니까?IFoo아니면 원주민을 재사용할 수 있는 더 나은 방법이 있습니까?

당신은 찾고 있습니다.extends키워드:

Interface Foo extends Bar, ArrayAccess, IteratorAggregate, Serializable
{
    ...
}

개체 인터페이스 구체적인 예 #2 확장 가능한 인터페이스 ff를 참조하십시오.


참고: 방금 제거했습니다.I의 접두사.IFoo,IBar인터페이스 이름.

PHP 개발자에 대한 추가적인 관점으로 나는 넷테를 위한 데이비드 그루들의 "접두사와 접미사는 인터페이스 이름에 속하지 않습니다"를 읽을 것을 추천할 수 있습니다(2022년 6월).

다음을 사용해야 합니다.extends키워드를 사용하여 인터페이스를 확장하고 클래스에서 인터페이스를 구현해야 할 경우implements구현할 키워드입니다.

사용할 수 있습니다.implements사용자 클래스의 여러 인터페이스를 통해 액세스할 수 있습니다.인터페이스를 구현하는 경우 모든 함수의 본문을 정의해야 합니다. 이와 같이...

interface FirstInterface
{
    function firstInterfaceMethod1();
    function firstInterfaceMethod2();
}
interface SecondInterface
{
    function SecondInterfaceMethod1();
    function SecondInterfaceMethod2();
}
interface PerantInterface extends FirstInterface, SecondInterface
{
    function perantInterfaceMethod1();
    function perantInterfaceMethod2();
}


class Home implements PerantInterface
{
    function firstInterfaceMethod1()
    {
        echo "firstInterfaceMethod1 implement";
    }

    function firstInterfaceMethod2()
    {
        echo "firstInterfaceMethod2 implement";
    }
    function SecondInterfaceMethod1()
    {
        echo "SecondInterfaceMethod1 implement";
    }
    function SecondInterfaceMethod2()
    {
        echo "SecondInterfaceMethod2 implement";
    }
    function perantInterfaceMethod1()
    {
        echo "perantInterfaceMethod1 implement";
    }
    function perantInterfaceMethod2()
    {
        echo "perantInterfaceMethod2 implement";
    }
}

$obj = new Home();
$obj->firstInterfaceMethod1();

등등...호출 방법

언급URL : https://stackoverflow.com/questions/13942727/how-to-create-an-interface-composed-of-other-interfaces