PHP의 특성에 대해 알아야 할 모든 것



이 기사는 PHP의 특성, 구현 방법 및 상속과의 차이점에 대한 상세하고 포괄적 인 지식을 제공합니다.

특성을 이해하기 전에 . 클래스가 다른 클래스를 확장 할 수 있음을 의미하는 상속에 대해 배웠습니다. 클래스 B가 클래스 A를 확장하고 클래스 C도 클래스 A를 확장한다고 가정 해 봅시다. 즉, 클래스 A에 정의 된 함수는 클래스 B와 클래스 C에서 액세스 할 수 있지만 클래스 B와 클래스 C가 함수 X를 재정의하고 클래스 D가 다음과 같다고 가정 해 보겠습니다. 두 클래스를 확장합니다.

traits-in-php





다중 상속은 PHP에서 지원하지 않지만 그런 경우라면 클래스 D가 실행되는 함수는 무엇입니까? 클래스 B입니까 아니면 클래스 C입니까? 따라서 이것은 실제로 다중 상속 문제입니다. 이것이 PHP가이를 지원하지 않는 이유입니다.하지만 코드 재사용을 위해 둘 이상의 클래스를 확장하려는 경우가 많습니다.



단일 상속 문제에 대해 이야기 할 때 클래스 D는 클래스 C를 확장하지만 클래스 D에서 클래스 B의 일부 기능을 갖고 싶다면 어떻게해야합니까?이를 위해 PHP 5.4에서 도입 된 특성을 사용할 수 있습니다. 간단하고 만들기 쉽습니다. 클래스와 비슷하지만 메서드 그룹 및 추상 클래스에 대해서만 이산을 인스턴스화 할 수 없습니다.

PHP의 특성

일반적으로 개발자가 서로 다른 클래스 계층 구조의 여러 독립 클래스에서 메서드를 자유롭게 재사용 할 수 있도록 정적 멤버와 정적 메서드를 모두 정의 할 수 있습니다. 특성은 다중 상속, 믹스 인과 관련된 문제를 방지하고 복잡성을 줄입니다.



통사론:

Java의 tostring 메소드는 무엇입니까
 

이러한 방식으로 특성을 다른 클래스에 포함 할 수 있습니다.

class Post {공유 가능 사용} class Comment {공유 가능 사용}

PHP는 다중 상속을 허용하지 않으므로 Trait은 여러 클래스에서 동일한 기능을 재사용 할 수 있도록하여이를 극복하는 데 사용됩니다. 아래 예제는 PHP에서 트레이 트의 작동을 보여줍니다.

func ()?>

산출:

특성의 장점

특성은 코드 중복을 줄이면서 애플리케이션 컨텍스트 내에서 의미가없는 복잡한 클래스 상속을 방지합니다.

이를 통해 명확하고 간결한 단순 특성을 정의한 다음 적절한 경우 해당 기능을 혼합 할 수 있습니다.

C ++의 정적 멤버 함수

PHP의 특성과 인터페이스

일반적으로 PHP에서 Interfaces와 Traits의 주요 차이점은 Traits는 기본적으로 각 클래스 내에서 각 메서드의 실제 구현을 정의하므로 동일한 인터페이스가 여러 클래스에서 구현되지만 동작이 다르며 traits는 삽입 된 코드 덩어리 일뿐입니다. PHP의 클래스에서.

 

이것으로 우리는 파이썬 기사에서 이러한 특성을 끝냅니다. 특성, 특성의 장점 및 특성과 인터페이스의 차이점에 대해 배웠기를 바랍니다.

이 PHP 블로그가 관련이 있다고 생각되면 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서

질문이 있으십니까? 'PHP의 특성'의 주석 섹션에 언급 해 주시면 다시 연락 드리겠습니다.