이 글에서는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!