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

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

程序员文章站 2022-05-10 21:34:57
...
       在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代码; 实现了所谓的多继承

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

但是需要注意的是如果两个方法名相同就会出现报错: "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;

}