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

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

青灯夜游
青灯夜游앞으로
2020-04-23 09:19:362920검색

이 글에서는 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으로 문의하시기 바랍니다. 삭제