码迷,mamicode.com
首页 > Web开发 > 详细

PHP系列之一traits的应用

时间:2016-09-29 17:43:48      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

Traits 在PHP中实现在方法的重复使用;Traits与Class相似,但是它能够在Class中使用自己的方法而不用继承;

Traits在Class中优先于原Class中的方法,引用PHP Document中的例子:

<?php
class Base {
    public function sayHello() {
        echo ‘Hello ‘;
    }
}

trait SayWorld {
    public function sayHello() {
        parent::sayHello();
        echo ‘World!‘;
    }
}

class MyHelloWorld extends Base {
    use SayWorld;
}

$o = new MyHelloWorld();
$o->sayHello();
?> 

 以上输出结果为:

Hello World!

Traits按顺序原则,被覆盖的例子:

<?php
trait HelloWorld {
    public function sayHello() {
        echo ‘Hello World!‘;
    }
}

class TheWorldIsNotEnough {
    use HelloWorld;
    public function sayHello() {
        echo ‘Hello Universe!‘;
    }
}

$o = new TheWorldIsNotEnough();
$o->sayHello();
?> 

输出结果为:

Hello Universe!

 Traits在Class中的应用,同样以PHP Document为例:

<?php
trait Hello {
    public function sayHello() {
        echo Hello ;
    }
}

trait World {
    public function sayWorld() {
        echo World;
    }
}

class MyHelloWorld {
    use Hello, World;
    public function sayExclamationMark() {
        echo !;
    }
}

$o = new MyHelloWorld();
$o->sayHello();
$o->sayWorld();
$o->sayExclamationMark();
?> 

输出结果为:

Hello World!

 

PHP系列之一traits的应用

标签:

原文地址:http://www.cnblogs.com/anlia/p/5920299.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!