다른 인터페이스로 구성된 인터페이스를 만드는 방법은 무엇입니까?
인터페이스를 만들고 싶습니다.IFoo
그것은 기본적으로 사용자 지정 인터페이스의 조합입니다.IBar
그리고 몇 가지 기본 인터페이스,ArrayAccess
,IteratorAggregate
,그리고.Serializable
PHP는 다른 인터페이스를 구현하는 인터페이스를 허용하지 않는 것 같습니다. 시도할 때 다음 오류가 발생합니다.
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
'source' 카테고리의 다른 글
table.datable.js의 함수가 아닙니다. (0) | 2023.08.08 |
---|---|
제품당 최신 두 줄을 구입하고 가격과 날짜를 확인합니다. (0) | 2023.08.08 |
헤드리스 브라우저로 테스트를 실행하려면 어떻게 해야 합니까? (0) | 2023.08.08 |
PHP의 base64 문자열에서 이미지 유형 탐지 (0) | 2023.08.08 |
테이블스페이스 'USERS'에 대한 권한 없음 (0) | 2023.08.08 |