当前位置:首页 > 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. trait B{ 
  21.  
  22.    
  23.  
  24.  public function eat(){ 
  25.  
  26.   echo 'B-eat'
  27.  
  28.  } 
  29.  
  30.    
  31.  
  32.  public function say(){ 
  33.  
  34.   echo 'B-say'
  35.  
  36.  } 
  37.  
  38.  
  39.    
  40.  
  41. class People{ 
  42.  
  43.  use A,B{ 
  44.  
  45.   A::eat insteadof B; 
  46.  
  47.   B::eat as eatbak; 
  48.  
  49.   B::say insteadof A; 
  50.  
  51.  } 
  52.  
  53.  
  54.    
  55.  
  56. $people = new People(); 
  57.  
  58. $people->eat(); 
  59.  
  60. echo "<br/>"
  61.  
  62. $people->say(); 
  63.  
  64. echo "<br/>"
  65.  
  66. $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. class People { 
  15.  
  16.  use Test { say as protected; } 
  17.  
  18.  
  19.    
  20.  
  21. $people = new People(); 
  22.  
  23.    
  24.  
  25. $people->say(); 

运行结果:

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

Tags: Trait

分享到: