当前位置:首页 > PHP教程 > php高级应用 > 列表

PHP之Trait功能与用法实例分析

发布:smiling 来源: PHP粉丝网  添加日期:2022-07-09 09:32:54 浏览: 评论:0 

本文实例讲述了PHP Trait功能与用法,分享给大家供大家参考,具体如下:

Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制。

1.如果引入的Trait有同名的方法

  1. trait A{ 
  2.  
  3.  public function eat(){ 
  4.  
  5.   echo 'A-eat'; 
  6.  
  7.  } 
  8.  
  9.    
  10.  
  11.  public function say(){ 
  12.  
  13.   echo 'A-say'; 
  14.  
  15.  } 
  16.  
  17. } 
  18.  
  19.    
  20.  
  21. trait B{ 
  22.  
  23.    
  24.  
  25.  public function eat(){ 
  26.  
  27.   echo 'B-eat'; 
  28.  
  29.  } 
  30.  
  31.    
  32.  
  33.  public function say(){ 
  34.  
  35.   echo 'B-say'; 
  36.  
  37.  } 
  38.  
  39. } 
  40.  
  41.    
  42.  
  43. class People{ 
  44.  
  45.  use A,B{ 
  46.  
  47.   A::eat insteadof B; 
  48.  
  49.   B::eat as eatbak; 
  50.  
  51.   B::say insteadof A; 
  52.  
  53.  } 
  54.  
  55. } 
  56.  
  57.    
  58.  
  59. $people = new People(); 
  60.  
  61. $people->eat(); 
  62.  
  63. echo "<br/>"; 
  64.  
  65. $people->say(); 
  66.  
  67. echo "<br/>"; 
  68.  
  69. $people->eatbak(); 

运行结果:

A-eat

B-say

B-eat

2.修改访问控制

  1. <?php 
  2.  
  3. trait Test { 
  4.  
  5.  public function say() { 
  6.  
  7.   echo 'say hello'; 
  8.  
  9.  } 
  10.  
  11. } 
  12.  
  13.    
  14.  
  15. class People { 
  16.  
  17.  use Test { say as protected; } 
  18.  
  19. } 
  20.  
  21.    
  22.  
  23. $people = new People(); 
  24.  
  25.    
  26.  
  27. $people->say(); 

运行结果:

Fatal error: Call to protected method People::say() from context '' in D:\phpdemo\trait_Demo.php on line 14

Tags: Trait

分享到: