作业一
1、代码:
(1)、view代码:
<?php
namespace mvc;
//输出显示类
class Show
{
public function show($data){
$table='<table>';
$table.='<caption>员工信息表</caption>';
$table.='<tr><th>ID</th><th>工号</th><th>名字</th><th>性别</th><th>职位</th><th>工龄</th></tr>';
foreach ($data as $staff){
$table.='<tr>
<td>'.$staff['id'].'</td>
<td>'.$staff['工号'].'</td>
<td>'.$staff['name'].'</td>
<td>'.$staff['sex'].'</td>
<td>'.$staff['position'].'</td>
<td>'.$staff['seniority'].'</td>
</tr>';
}
$table.='</table>';
return $table;
}
}
(2)model代码
<?php
namespace mvc;
//定义获取数据类
class Model
{
public function get_data(){
return [
['id'=>1,'工号'=>'001','name'=>'李总','sex'=>1,'position'=>'董事长','seniority'=>10],
['id'=>2,'工号'=>'002','name'=>'小花','sex'=>0,'position'=>'财务会计','seniority'=>4],
['id'=>3,'工号'=>'003','name'=>'小王','sex'=>1,'position'=>'后勤','seniority'=>3],
['id'=>4,'工号'=>'004','name'=>'小七','sex'=>0,'position'=>'人事','seniority'=>7],
['id'=>5,'工号'=>'005','name'=>'小八','sex'=>1,'position'=>'销售','seniority'=>3],
];
}
}
(3)controls代码
<?php
namespace mvc;
//导入数据操作
require 'model.php';
//导入视图显示
require 'view.php';
class Controls
{
public $model;
public $view;
public function __construct($model,$view){
$this->model=$model;
$this->view=$view;
}
public function control(){
$data=$this->model->get_data();
return $this->view->show($data);
}
}
$model=new Model();
$view=new Show();
$index=new Controls($model,$view);
echo $index->control();
#注释css样式
echo '<style>
table {border-collapse: collapse; border: 1px solid; width: 500px;height: 150px}
caption {font-size: 1.2rem; margin-bottom: 10px;}
tr:first-of-type { background-color:lightblue;}
td,th {border: 1px solid}
td:first-of-type {text-align: center}
</style>';
2、效果图
作业二
1月16日知识点总结
1、关于类的相关知识点:
extends:继承 例:B类继承了A类
class A {}
class B extends A {}
2、封装:类内方法和属性使用声明:
(1)public:公共的,类内部和外部都可以直接调用,包含子类
(2)private:私有的,仅类的内部可以直接调用
(3)protected:保护的,不允许类外部使用,但子类可以调用
3、静态变量:static 类内外都可以使用:self::$static/ClassName::$static
可以直接使用类名直接访问(不需要实列化):ClassName::$static
静态方法(声明的静态函数)不能用实例访问,内部不允许使用$this
4、接口:interface 实现接口的类, 必须将接口中声明的方法全部实现
使用接口的类关键字:implements
例:
<?php
interface iDome
{
public function get_info();
public function get_data();
}
class Demo implements iDome
{
public $name;
protected $age;
public function __construct($name,$age)
{
$this->name=$name;
$this->age=$age;
}
public function get_info()
{
return $this->name.'的年龄'.$this->age;
}
public function get_data()
{
return [$this->name,$this->age];
}
}
$a=new Demo('ldy',27);
echo $a->name,'<br>';
echo $a->get_info(),'<br>';
echo print_r($a->get_data(),true);
- 实例效果
5、抽象类:需要使用关键字:abstract 来声明,其中必须有一个未实现函数(只声明)
抽象类不能备实列化,只能当父类来继承,通过子类访问
7、命名空间:namespace A; namespace A {}主要用于解决类命名冲突 \A 访问全局空间 \
函数或常量,当前空间找不到, 就到全局找, 但是类不会