欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP Trait功能与用法实例分析

程序员文章站 2022-04-10 08:45:32
本文实例讲述了php trait功能与用法。分享给大家供大家参考,具体如下:trait 是为类似 php 的单继承语言而准备的一种代码复用机制。1.如果引入的trait有同名的方法trait a{ p...

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

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

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

trait a{
 public function eat(){
  echo 'a-eat';
 }
 
 public function say(){
  echo 'a-say';
 }
}
 
trait b{
 
 public function eat(){
  echo 'b-eat';
 }
 
 public function say(){
  echo 'b-say';
 }
}
 
class people{
 use a,b{
  a::eat insteadof b;
  b::eat as eatbak;
  b::say insteadof a;
 }
}
 
$people = new people();
$people->eat();
echo "<br/>";
$people->say();
echo "<br/>";
$people->eatbak();

运行结果:

a-eat
b-say
b-eat

2.修改访问控制

<?php
trait test {
 public function say() {
  echo 'say hello';
 }
}
 
class people {
 use test { say as protected; }
}
 
$people = new people();
 
$people->say(); 

运行结果:

fatal error: call to protected method people::say() from context '' in d:\phpdemo\trait_demo.php on line 14

相关标签: PHP Trait