PHP中特质机制的原理是什么

  

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中特质机制的原理是什么