批改状态:合格
老师批语:说得对, 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一下多方便!既能简化命名空间,还能直接加载类!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号