首页 > 代码库 > PHP系列之一traits的应用

PHP系列之一traits的应用

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

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

<?phpclass 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按顺序原则,被覆盖的例子:

<?phptrait 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为例:

<?phptrait 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的应用