>백엔드 개발 >PHP 문제 >PHP 특성의 사용법은 무엇입니까?

PHP 특성의 사용법은 무엇입니까?

藏色散人
藏色散人원래의
2021-05-18 10:32:191894검색

php 특성은 PHP의 단일 상속 제한을 위한 유연한 코드 재사용 메커니즘을 제공하는 코드 재사용 기술입니다. 해당 사용 구문은 "trait ezcReflectionReturnInfo {function getReturnType() {/*1*/}.. .}"과 같습니다.

PHP 특성의 사용법은 무엇입니까?

이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

1. PHP에서 특성이란 무엇입니까?

클래스와 인터페이스처럼 보이지만 실제로는 특성은 볼 수 없습니다. 하나 이상의 기존 PHP 클래스에 혼합할 수 있는 클래스의 부분 구현을 만듭니다. 클래스가 수행할 수 있는 작업을 표시하고 모듈식 구현을 제공합니다. Trait은 PHP의 단일 상속 제한에 대해 유연한 코드 재사용 메커니즘을 제공하는 코드 재사용 기술입니다.

2. PHP 버전 요구 사항:

  PHP5.4에서는 코드 중복을 줄이고 코드 재사용성을 높이는 것이 목적인 특성을 도입하기 시작했습니다.

3. 특성 사용 시나리오:

여러 클래스에서 메서드를 사용해야 하는 경우 어떻게 처리해야 할까요?

이를 처리하는 일반적인 방법은 기본 클래스를 작성하고 기본 클래스에 이 메서드를 구현한 다음 모든 클래스가 이 기본 클래스를 상속하는 것입니다.

 이것은 대처 방법이지만 최선의 대처 방법은 아닙니다. 상속은 일반적으로 여러 클래스가 매우 유사할 때 사용됩니다. 예를 들어 people은 기본 클래스이고 학생, 근로자 등은 기본 클래스 "people"을 상속하여 확장합니다.

 이에서 특성의 역할이 나오는데 여러 클래스에서 사용할 수 있습니다.

4. 특성 사용 방법:

PHP 매뉴얼의 예 인용:

예제 1

<?php
trait ezcReflectionReturnInfo {
    function getReturnType() { /*1*/ }
    function getReturnDescription() { /*2*/ }
}
 
class ezcReflectionMethod extends ReflectionMethod {
    use ezcReflectionReturnInfo;
    /* ... */
}
 
class ezcReflectionFunction extends ReflectionFunction {
    use ezcReflectionReturnInfo;
    /* ... */
}
?>

1. 먼저 특성을 소개하기 위해 클래스에서 사용을 사용합니다.

아주 간단하지 않나요(수동탈출)? 주목해야 할 것은 특성의 우선순위입니다.

5. 특성 우선순위

 (칠판 두드리기) 기본 클래스에서 상속된 멤버는 특성에 의해 삽입된 멤버로 재정의됩니다. 우선 순위는 현재 클래스의 멤버가 특성의 메서드를 재정의하고 특성이 상속된 메서드를 재정의하는 것입니다.

우선순위: 자체 메서드 > 특성 메서드 > 상속 메서드(이렇습니다.)

예제를 보세요

<?php
trait HelloWorld {
    public function sayHello() {
        echo &#39;Hello World!&#39;;
    }
}
class TheWorldIsNotEnough {
    use HelloWorld;
    public function sayHello() {
        echo &#39;Hello Universe!&#39;;
    }
}
$o = new TheWorldIsNotEnough();
$o->sayHello();//输出是 Hello Universe!
?>

또 한 가지 주목할 점은 여러 특성을 사용한다는 것입니다.

<?php
trait Hello {
    public function sayHello() {
        echo &#39;Hello &#39;;
    }
}
 
trait World {
    public function sayWorld() {
        echo &#39;World&#39;;
    }
}
 
class MyHelloWorld {
    use Hello, World;
    public function sayExclamationMark() {
        echo &#39;!&#39;;
    }
}
 
$o = new MyHelloWorld();
$o->sayHello();
$o->sayWorld();
$o->sayExclamationMark();
?>

요약: Trait은 PHP의 단일 상속 제한을 위해 유연한 코드 재사용 메커니즘을 제공하는 코드 재사용 기술입니다.

추천 학습: "

PHP 비디오 튜토리얼

"

위 내용은 PHP 특성의 사용법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.