PHP Trait功能与用法实例分析
程序员文章站
2022-07-06 11:41:37
本文实例讲述了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