traits 是将一段代码 引入 类中 使用,是的代码(属性和方法)可以更加灵活的被复用。
那么什么使用需要 使用大 trait?
设想一下,加入有父类两个类 同时需要 相同的方法和属性,应该怎么办?我们都知道 父类是不可能 继承父类的,而这个时候,trait就派上用场了。
实际写一下代码吧。
<?php
header('content-Type:text/html;charset=utd-8');
trait ta{
public function aa()
{
echo 'aa';
}
}
class people {
public $name='野原小葵';
public $sex='女';
public $iq='-5';
public $blog='dir321.com';
public function say($food){
echo $this->name=$name;
}
}
class people2 {
public function say($food){
echo $this->name=$name;
}
use ta;
}
$xiaoxin=new people2();
$xiaoxin->aa();
?>
//好了 继续 如果 来看一下 trait的优先级吧
<?php
trait ta{
public function aa(){
echo 'aa';
}
}
class people{
public function aa(){
echo 'aa';
}
use ta;
}
class child extends people{
public function aa(){
echo 'aa';
}
use ta;
}
$xiaoming=new child();
$xiaoming ->aa();
?>
//我们 继续使用这段代码 再来试验一下
<?php
trait ta{
public function aa(){
echo 'aa';
}
}
class people{
public function aa(){
echo 'aa';
}
use ta;
}
class child extends people{
use ta;
}
$xiaoming=new child();
$xiaoming ->aa();
?>
再继续 看看 其他问题 ,如何引入多个 trait
<?php
trait ta{
public function aa(){
echo 'aa';
}
}
trait tb{
public function bb(){
echo 'b';
}
}
class people{
public function aa(){
echo 'aa';
}
use ta,tb;
}
class child extends people{
use ta;
}
$xiaoming=new child();
$xiaoming ->aa();
$xiaoming->bb();
?>
OK 在线 就太长太多了 trait其他的一些 特性 我会放到之后的文章里。
|