Correction status:qualified
Teacher's comments:
一、知识点
1,自动加载技术
随着类越来越多,每次引用类文件需要使用require语句加载一个文件,比较繁琐容易出错。使用自动加载函数后只需定义类绝对路径即可,随着使用步骤自动加载类文件。
2。父类、子类继承
子类继承父类后,可以只需实例化子类即可使用父类中的属性和方法,无需实例化父类。
子类可以对父类中的方法、属性重新定义,但是常规不这么使用。为对父类中的功能进行扩展。
二、源码部分(带注释)
1.USER类
<?php /** * Created by PhpStorm. * User: zhouf * Date: 2018-05-06 * Time: 11:00 */ class User { protected $id; protected $username; protected $password; public function __construct($id='',$username='',$password='') { $this->id=$id; $this->username=$username; $this->password=$password; } public function __get($name) { return $this->$name; } public function __set($name, $value) { $this->$name=$value; } public function user_group() { return "普通用户"; } }
点击 "运行实例" 按钮查看在线实例
2,VIP类
<?php /** * Created by PhpStorm. * User: zhouf * Date: 2018-05-06 * Time: 11:51 */ class Vip extends User { protected $vip=1; public function __construct($id = '', $username = '', $password = '',$vip='') { parent::__construct($id, $username, $password); $this->vip=$vip; } public function __set($name, $value) { $this->$name=$value; } public function Show_v(){ return "子类VIP:".($this->vip).":".parent::user_group(); } }
点击 "运行实例" 按钮查看在线实例
首页应用及自动加载
<?php /** * Created by PhpStorm. * User: zhouf * Date: 2018-05-06 * Time: 11:00 */ //类的自动加载无需多次引用 spl_autoload_register(function ($class_name){ require "$class_name".'.php'; }); //$a=new User("1001","zhoufan","123456"); // //echo "用户组:".$a->user_group(); //echo "<hr>"; //echo "用户名:".$a->username; $b=new Vip(); //设置子类属性访问子类属性 $b->vip=true; echo $b->Show_v(); //通过子类访问父类属性; echo "<hr>"; echo $b->user_group(); echo "<hr>"; $b->password="zzzbbbvv"; echo $b->password;
点击 "运行实例" 按钮查看在线实例