批改状态:合格
老师批语:案例很棒
<?php//在接口中定义一个常量和抽象方法interface Data{const array = [['姓名' => '胡八一', '年龄' => 40, '性别' => '男'],['姓名' => '杨雪丽', '年龄' => 32, '性别' => '男'],['姓名' => '胡八一', '年龄' => 28, '性别' => '女'],['姓名' => '王凯旋', '年龄' => 31, '性别' => '男'],['姓名' => '大金牙', '年龄' => 45, '性别' => '男'],];function result();}//定义一个trait,里面定义一个公用方法用于显示结果trait Display{protected function show_p($text){printf('<hr><pre>%s</pre><hr>', print_r($text, true));}}//定义一个抽象类,该类引用了trait并定义了一个抽象方法abstract class Norm{use Display;abstract function format();}//定义一个工作类,内部的out方法接收Data类型的对象可以直接输出结果class Output{public function out(Data $obje){$obje->result();}}//定义一个tab类,继承Norm类和Data接口,输出表格格式的数据class Tab extends Norm implements Data{public function format(){return array_reduce(Data::array,function ($a, $b) {return $a .= ('<tr><th>' . $b['姓名'] . '</th><th>' . $b['年龄'] . '</th><th>' . $b['性别'] . '</th></tr>');},'<table border="1" cellspacing="0"><tr><th>姓名</th><th>年龄</th><th>性别</th></tr>');}public function result(){$this->show_p($this->format() . '</table>');}}//定义一个Textlist类,继承Norm类和Data接口,输出列表格式的数据class Textlist extends Norm implements Data{function format(){return array_reduce(Data::array,function ($a, $b) {return $a .= ($b['姓名'] . '年龄' . $b['年龄'] . '岁性别' . $b['性别'] . '</br>');});}public function result(){$this->show_p($this->format());}}//实例化对象然后输出$tab = new Tab;$tlist = new Textlist;$out = new Output;$out->out($tab);$out->out($tlist);

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号