Blogger Information
Blog 145
fans 7
comment 7
visits 164139
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
01月16日作业:模仿课堂mvc框架案例
李东亚¹⁸⁰³⁹⁵⁴⁰¹²⁰
Original
775 people have browsed it

作业一

1、代码:

(1)、view代码:

  1. <?php
  2. namespace mvc;
  3. //输出显示类
  4. class Show
  5. {
  6. public function show($data){
  7. $table='<table>';
  8. $table.='<caption>员工信息表</caption>';
  9. $table.='<tr><th>ID</th><th>工号</th><th>名字</th><th>性别</th><th>职位</th><th>工龄</th></tr>';
  10. foreach ($data as $staff){
  11. $table.='<tr>
  12. <td>'.$staff['id'].'</td>
  13. <td>'.$staff['工号'].'</td>
  14. <td>'.$staff['name'].'</td>
  15. <td>'.$staff['sex'].'</td>
  16. <td>'.$staff['position'].'</td>
  17. <td>'.$staff['seniority'].'</td>
  18. </tr>';
  19. }
  20. $table.='</table>';
  21. return $table;
  22. }
  23. }

(2)model代码

  1. <?php
  2. namespace mvc;
  3. //定义获取数据类
  4. class Model
  5. {
  6. public function get_data(){
  7. return [
  8. ['id'=>1,'工号'=>'001','name'=>'李总','sex'=>1,'position'=>'董事长','seniority'=>10],
  9. ['id'=>2,'工号'=>'002','name'=>'小花','sex'=>0,'position'=>'财务会计','seniority'=>4],
  10. ['id'=>3,'工号'=>'003','name'=>'小王','sex'=>1,'position'=>'后勤','seniority'=>3],
  11. ['id'=>4,'工号'=>'004','name'=>'小七','sex'=>0,'position'=>'人事','seniority'=>7],
  12. ['id'=>5,'工号'=>'005','name'=>'小八','sex'=>1,'position'=>'销售','seniority'=>3],
  13. ];
  14. }
  15. }

(3)controls代码

  1. <?php
  2. namespace mvc;
  3. //导入数据操作
  4. require 'model.php';
  5. //导入视图显示
  6. require 'view.php';
  7. class Controls
  8. {
  9. public $model;
  10. public $view;
  11. public function __construct($model,$view){
  12. $this->model=$model;
  13. $this->view=$view;
  14. }
  15. public function control(){
  16. $data=$this->model->get_data();
  17. return $this->view->show($data);
  18. }
  19. }
  20. $model=new Model();
  21. $view=new Show();
  22. $index=new Controls($model,$view);
  23. echo $index->control();
  24. #注释css样式
  25. echo '<style>
  26. table {border-collapse: collapse; border: 1px solid; width: 500px;height: 150px}
  27. caption {font-size: 1.2rem; margin-bottom: 10px;}
  28. tr:first-of-type { background-color:lightblue;}
  29. td,th {border: 1px solid}
  30. td:first-of-type {text-align: center}
  31. </style>';

2、效果图

作业二

1月16日知识点总结

1、关于类的相关知识点:
extends:继承 例:B类继承了A类

  1. class A {}
  2. class B extends A {}

2、封装:类内方法和属性使用声明:
(1)public:公共的,类内部和外部都可以直接调用,包含子类
(2)private:私有的,仅类的内部可以直接调用
(3)protected:保护的,不允许类外部使用,但子类可以调用
3、静态变量:static 类内外都可以使用:self::$static/ClassName::$static
可以直接使用类名直接访问(不需要实列化):ClassName::$static
静态方法(声明的静态函数)不能用实例访问,内部不允许使用$this
4、接口:interface 实现接口的类, 必须将接口中声明的方法全部实现
使用接口的类关键字:implements
例:

  1. <?php
  2. interface iDome
  3. {
  4. public function get_info();
  5. public function get_data();
  6. }
  7. class Demo implements iDome
  8. {
  9. public $name;
  10. protected $age;
  11. public function __construct($name,$age)
  12. {
  13. $this->name=$name;
  14. $this->age=$age;
  15. }
  16. public function get_info()
  17. {
  18. return $this->name.'的年龄'.$this->age;
  19. }
  20. public function get_data()
  21. {
  22. return [$this->name,$this->age];
  23. }
  24. }
  25. $a=new Demo('ldy',27);
  26. echo $a->name,'<br>';
  27. echo $a->get_info(),'<br>';
  28. echo print_r($a->get_data(),true);
  • 实例效果

    5、抽象类:需要使用关键字:abstract 来声明,其中必须有一个未实现函数(只声明)
    抽象类不能备实列化,只能当父类来继承,通过子类访问
    7、命名空间:namespace A; namespace A {}主要用于解决类命名冲突 \A 访问全局空间 \
    函数或常量,当前空间找不到, 就到全局找, 但是类不会
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:思路很清楚
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post