반응형
클래스가 클래스를 확장하고 인터페이스를 구현할 수 있습니까?
클래스가 PHP에서 확장 인터페이스와 다른 클래스를 모두 확장 할 수 있습니까?
기본적으로 이렇게하고 싶습니다.
interface databaseInterface{
public function query($q);
public function escape($s);
//more methods
}
class database{ //extends both mysqli and implements databaseInterface
//etc.
}
간단히 다음과 같이 어떻게 할 수 있습니까?
class database implements databaseInterface extends mysqli{
치명적인 오류가 발생합니다.
구문 분석 오류 : 구문 오류, 예상치 못한 T_EXTENDS, * file *의 * line * 줄에 '{'가 필요합니다.
다른 방법으로 시도해.
class database extends mysqli implements databaseInterface { ...}
작동합니다.
예, 그럴 수 있습니다. 올바른 순서를 유지하기 만하면됩니다.
class database extends mysqli implements databaseInterface { ... }
또한 클래스는 둘 이상의 인터페이스를 구현할 수 있습니다. 쉼표로 구분하십시오.
그러나 mysqli 클래스 를 확장하는 [해석] 엄청나게 나쁜 생각 이라고 경고 할 의무가 있다고 생각 합니다. 상속은 객체 지향 프로그래밍에서 가장 과대 평가되고 오용되는 개념 일 것입니다.
대신 db 관련 작업을 mysqli 방식 (또는 PDO 방식)으로하는 것이 좋습니다.
또한 사소한 것이지만 명명 규칙이 중요합니다. 의 클래스 당신 database
는 더 일반적으로 mysqli
보이므로 후자가 상속되는 database
것이 아니라의 주위 방법을 상속 하지 않는다고 제안합니다 .
예, 실제로 여러 인터페이스를 구현할 때 다음과 같이 할 수 있습니다.
public class MyClass extends BaseClass implements myInterface1, myInterface2, myInterface3{
}
반응형
'IT' 카테고리의 다른 글
JQuery Ajax 요청의 진행 상황을 얻는 가장 중요한 방법은 무엇입니까? (0) | 2020.09.05 |
---|---|
기기의 IP 주소를 가져옵니다. (0) | 2020.09.05 |
Python에서 노드의 이스케이프 시퀀스 처리 (0) | 2020.09.04 |
float : left div를 가운데에 정렬? (0) | 2020.09.04 |
Android 작업 표시 줄에 오버플로가 표시되지 않음 (0) | 2020.09.04 |