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의 단일 상속 제한에 대한 유연한 코드 다중화 메커니즘을 제공합니다
'개발 꿀팁 > PHP' 카테고리의 다른 글
Mac 자체 PHP 작동 php-fpm 문제 해결 (0) | 2022.07.05 |
---|---|
php 위조 프로토콜, 파일 포함 취약성 (0) | 2022.07.05 |
PHP는 Mysql에 연결하여 기본적인 추가, 삭제, 변경, 조사-사용자 관리 시스템 구현 (0) | 2022.07.05 |
PhpSpreadsheet 설정 셀 상세 내역 (0) | 2022.07.05 |
PHP가 SESSION의 생존기간을 어떻게 수정하는지 (0) | 2022.07.05 |