首页 > php教程 > php手册 > [麦先生]PHP5.4以上更新的伪"多继承"--trait语法

[麦先生]PHP5.4以上更新的伪"多继承"--trait语法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-06 09:32:31
原创
1539 人浏览过

       在PHP低版本中,类是无法实现多继承的,因而,我们在想要达到多继承效果时就要考虑到"链式继承",在高版本PHP中更新了trait语法,以实现"所谓的多继承"

       

 

trait PHP

{

      public function pcode()

{

echo '我可以编写PHP代码';

}

}

trait Java

{

public function jcode()

{

echo '我可以编写JAVA代码';

}

}

class Stu

{

use PHP , Java;

}

$stu = new Stu;

$stu->pcode();  //输出结果我可以编写PHP代码

$stu->jcode(); //输出的结果是我可以编写PHP代码 我可以编写JAVA代码;  实现了所谓的多继承

 

 

 

但是需要注意的是如果两个方法名相同就会出现报错: "Trait method can has not been applied, because there are collisions with other trait methods on App\User";

解决方案:在User.php下起别名

    

class User extends Model implements AuthenticatableContract,
AuthorizableContract,
CanResetPasswordContract
    {
             use Authenticatable, Authorizable,EntrustUserTrait, CanResetPassword{
            EntrustUserTrait::can as may;
           Authorizable::can insteadof EntrustUserTrait;

    }

 

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板