Correction status:qualified
Teacher's comments:说得对, trait 好用, 但不要滥用, 要有度, 否则 会让代码变得维护困难
结果:
这是基类Info的content属性
这是基类Info的content方法
这是基类Info的phone属性
我是正常类的reg方法
我是继承类User类的del方法
我是正常类Login的name属性
我是继承类User类的age属性
实例:
<?php namespace User; // 创建一个正常类class Info{} // 创建一个基类trait Info{} //创建一个抽象类 abstract class Info{} // 创建一个接口类interface Info{} // 创建一个继承类并使用基类class User extends Info{use Info;} trait Info{ public $content="这是基类Info的content属性"; public $phone = "这是基类Info的phone属性"; public function content(){ echo "这是基类Info的content方法"; } public function login(){ echo "这是基类Info的login方法"; } } class Login{ public $name="我是正常类Login的name属性"; //public $phone = "这是User类的phone属性"; public function reg(){ echo "我是正常类的reg方法"; } public function content(){ echo "这是一个正常类Login类的content方法"; } } class User extends Login{ // 这里引入基类Info //基类有的属性,User类、Login类就不能再有,会报错 // public $phone = "这是User类的phone属性"; use Info; public $age="我是继承类User类的age属性"; public function del(){ echo "我是继承类User类的del方法"; } } //先实例化一个对象 $user = new User(); echo $user->content; echo "<br>"; $user->content(); echo "<br>"; echo $user->phone; echo "<br>"; echo $user->reg(); echo "<br>"; echo $user->del(); echo "<br>"; echo $user->name; echo "<br>"; echo $user->age; ?>
点击 "运行实例" 按钮查看在线实例
总结:
use一下多方便!既能简化命名空间,还能直接加载类!