PHP系列之一traits的应用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP系列之一traits的应用相关的知识,希望对你有一定的参考价值。
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的应用的主要内容,如果未能解决你的问题,请参考以下文章