> 백엔드 개발 > PHP 튜토리얼 > PHP의 특성 메커니즘의 원리와 사용법을 분석합니다.

PHP의 특성 메커니즘의 원리와 사용법을 분석합니다.

青灯夜游
풀어 주다: 2023-04-08 14:44:01
앞으로
3025명이 탐색했습니다.

이 글에서는 PHP의 특성 메커니즘의 원리와 사용법을 분석합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

PHP의 특성 메커니즘의 원리와 사용법을 분석합니다.

특성 소개:

1 PHP5.4부터 PHP는 특성이라는 코드 재사용 방법을 구현했습니다.

2. Trait은 PHP와 같은 단일 상속 언어 ​​​​2를 위해 준비된 코드 재사용 메커니즘입니다.

3. 단일 상속 언어의 제한을 줄이기 위해 Trait을 사용하면 개발자가 다양한 계층의 독립 클래스에서 메서드를 자유롭게 재사용할 수 있습니다.

4. Trait은 코드 재사용을 실현하고 단일 상속의 한계를 돌파합니다.

5. Trait은 클래스이지만 인스턴스화할 수 없습니다.

6. 클래스의 메서드 이름이 같은 경우 우선순위는 현재 클래스 > 특성 > 상위 클래스입니다.

7. 여러 특성 클래스의 메서드 이름이 같은 경우 어느 것을 지정할지 지정해야 합니다. 액세스하고 다른 메소드에 동일한 이름을 지정하십시오.

예:

trait Demo1{
 public function hello1(){
  return __METHOD__;
 }
}
trait Demo2{
 public function hello2(){
  return __METHOD__;
 }
}
class Demo{
 use Demo1,Demo2;//继承Demo1和Demo2
 public function hello(){
  return __METHOD__;
 }
 public function test1(){
  //调用Demo1的方法
  return $this->hello1();
 }
 public function test2(){
  //调用Demo2的方法
  return $this->hello2();
 }
}
$cls = new Demo();
echo $cls->hello();
echo "<br>";
echo $cls->test1();
echo "<br>";
echo $cls->test2();
로그인 후 복사

실행 결과:

Demo::hello
Demo1::hello1
Demo2::hello2
로그인 후 복사

동일한 이름을 가진 여러 특성 메서드:

trait Demo1{
 public function test(){
  return __METHOD__;
 }
}
trait Demo2{
 public function test(){
  return __METHOD__;
 }
}
class Demo{
 use Demo1,Demo2{
  //Demo1的hello替换Demo2的hello方法
  Demo1::test insteadof Demo2;
  //Demo2的hello起别名
  Demo2::test as Demo2test;
 }
 public function test1(){
  //调用Demo1的方法
  return $this->test();
 }
 public function test2(){
  //调用Demo2的方法
  return $this->Demo2test();
 }
}
$cls = new Demo();
echo $cls->test1();
echo "<br>";
echo $cls->test2();
로그인 후 복사

실행 결과:

Demo1::test
Demo2::test
로그인 후 복사

자세한 내용은 PHP 중국어 웹사이트를 참조하세요. ! !

위 내용은 PHP의 특성 메커니즘의 원리와 사용법을 분석합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿