php学习笔记--trait的使用(为实现多继承产生)

本文深入解析PHP5.4中trait的定义、使用方法和优先级规则,通过示例代码展示如何在类中引入trait,并解释trait之间的方法覆盖机制。

trait是为实现多继承产生,php5.4的新特性
使用方法如下:

<?php
trait Tool{
    function getName(){
        echo "tool name";
    }
}

class HammerTool{
    use Tool
}

$tempTool = new HammerTool();
$tempTool->getName();//输出:tool name

优先级是,子类覆盖trait,trait覆盖子类继承的父类。
如果use几个trait,且trait中有相同的方法可用insteadof或as方法来实现替换或重命名。
如:

<?php
trait A{
    function smallTalk(){
        echo "A smallTalk";
    }
    function bigTalk(){
        echo "A bigTalk";
    }
}

trait B{
    function smallTalk(){
        echo "B smallTalk";
    }
    function bigTalk(){
        echo "B bigTalk";
    }
    function middleTalk(){
        echo "B middleTalk";
    }
}

class Talker {
    use A, B {
        B::smallTalk insteadof A;//用B的smallTalk替换A的方法。
        A::bigTalk insteadof B;
        B::middleTalk as private myPrivateHello;//重命名为B
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值