PHP中特质机制的原理是什么?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
<强>特质介绍:强>
1,自PHP5.4起,PHP实现了一种代码复用的方法,称为特征。
2,特征是为类似PHP的单继承语言二准备的一种代码复用机制。
3,特征为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用方法。
4,特征实现了代码的复用,突破了单继承的限制;
5,特点是类,但是不能实例化。
6,当类中方法重名时,优先级,当前类祝辞trait>父类;
7,当多个特征类的方法重名时,需要指定访问哪一个,给其它的方法起别名。
<强>示例:强>
trait Demo1 { ,public function  hello1 () { return 才能;__METHOD__; ,} } trait 以及接下来{ ,public function  hello2 () { return 才能;__METHOD__; ,} } {class 演示 以及接下来,use Demo1;//继承Demo1和以及接下来 ,public function  hello () { return 才能;__METHOD__; ,} ,public function  test1 () {//调才能用Demo1的方法 return 才能;这→美元hello1 (); ,} ,public function  test2 () {//调才能用以及接下来的方法 return 才能;这→美元hello2 (); ,} } $ cls =, new 演示(); echo cls→美元hello (); echo “ “; echo cls→美元test1 (); echo “ “; echo cls→美元test2 ();
运行结果:
演示::
引用>
Demo1:你好:hello1
以及接下来::hello2<强>多个特征方法重名:强>
trait Demo1 { ,public function 测试(){ return 才能;__METHOD__; ,} } trait 以及接下来{ ,public function 测试(){ return 才能;__METHOD__; ,} } {class 演示 ,use Demo1,以及接下来{//Demo1才能的你好替换以及接下来的你好方法 Demo1才能:test insteadof 以及接下来;//才能以及接下来的喂起别名 以及接下来才能:test as Demo2test; ,} ,public function  test1 () {//调才能用Demo1的方法 return 才能;美元这→测试(); ,} ,public function  test2 () {//调才能用以及接下来的方法 return 才能;这→美元Demo2test (); ,} } $ cls =, new 演示(); echo cls→美元test1 (); echo “ “; echo cls→美元test2 ();运行结果:
Demo1::
引用>
以及接下来测试:测试PHP中特质机制的原理是什么