개발 꿀팁/PHP

php에서 trait 사용

Jammie 2022. 7. 5. 14:44
반응형

php에서 trait 사용
1, php의 trait은뭐?

보아하니 클래스 같기도 하고 인터페이스 같기도 하지만 사실아니, 아니, Trait은 그런 부분이라고 볼 수 있어.분할 구현은 기존의 하나 이상의 PHP 클래스에 혼합될 수 있으며, 그 역할은 두 가지이다: 클래스가 무엇을 할 수 있는지를 나타내고, 모듈화된 구현을 제공한다.Trait은 PHP의 단일 상속 제한에 유연한 코드 다중화 메커니즘을 제공하는 코드 다중화 기술이다.

2. PHP 버전 요구사항:
php5.4 tra 도입it,그 목적은 코드의 무게를 줄이는 것이다.복호, 코드의 다중성을 증가시킨다.

3. trait 사용 장면:
이런 상황을 상상해 보십시오.방법을 여러 가지 분류에서 사용해야 할 경우 어떻게 해야 합니까?어떻게 처리합니까?
일반적으로 일반적인 처리 방식은 다음과 같다.하나의 기초 클래스, 기초 클래스 안에서 이 방법을 실현한다.그리고 모든 클래스가 이 기본 클래스를 상속합니다.

이것은 일종의 처리 방법이지만, 가장 중요한 것은 아니다.좋은 처리 방식. 보통 상속의 경우예:몇 개의 클래스는 유사성이 매우 큽니다.예를 들어 사람은 하나의 기류로서 학생, 노동자, 등이 '사람'이라는 기류를 계승하여 확장된다.

여기서 trait의 역할이 나온다.자, trait은 여러 장르에서사용하다.

4. trait 사용방법:
PHP 설명서의 예를 인용한다.

예1

<?php
trait ezcReflectionReturnInfo {
    function getReturnType() { /*1*/ }
    function getReturnDescription() { /*2*/ }
}

class ezcReflectionMethod extends ReflectionMethod {
    use ezcReflectionReturnInfo;
    /* ... */
}

class ezcReflectionFunction extends ReflectionFunction {
    use ezcReflectionReturnInfo;
    /* ... */
}
?>

1.먼저 trait을 선언한다.
2,클래스에서 use를 사용하여 이 tr을 사용한다ait 도입.
너무 쉽죠(수동도피?주목해야 할 것은 trait의 우선순위다.

5. trait의 우선순위

(칠판 두드림) 기본 클래스에서 상속된 멤버 모임trait에 삽입된 구성원으로 덮어씁니다.우선 순서는 현재 클래스의 멤버가 trait를 덮어쓰는 방법입니다. trait 상속되는 방법을 덮어씁니다.

우선순위: 자체 방법 > trait방법 > 상속하는 방법 (이러한 것입니다.)

예를 보다

<?php
trait HelloWorld {
    public function sayHello() {
        echo 'Hello World!';
    }
}

class TheWorldIsNotEnough {
    use HelloWorld;
    public function sayHello() {
        echo 'Hello Universe!';
    }
}

$o = new TheWorldIsNotEnough();
$o->sayHello();//출력은 Hello Universe!
?>

또 하나 주의해야 할 점은 여러 개의 trait 사용이다

<?php
trait Hello {
    public function sayHello() {
        echo 'Hello ';
    }
}

trait World {
    public function sayWorld() {
        echo 'World';
    }
}

class MyHelloWorld {
    use Hello, World;
    public function sayExclamationMark() {
        echo '!';
    }
}

$o = new MyHelloWorld();
$o->sayHello();
$o->sayWorld();
$o->sayExclamationMark();
?>

또 하나 주의해야 할 점은 여러 개의 trait 사용이다.요약: Trait은 코드 다중화 기술로 PHP의 단일 상속 제한에 대한 유연한 코드 다중화 메커니즘을 제공합니다

반응형