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!