批改状态:合格
老师批语:这些术语, 听上去就高逼格, 其实并不难, 是吧?
//定义一个接口interface iSetPseronInfo {//设置public static function setInfo($name, $sex, $age);//新增public function addData(array $data);//更新public function upData($source, $nvalue);//查询public function queData($seaValue);//删除public function delData($seaValue);}//定义一个实现类class SetPseronInfo implements iSetPseronInfo{//定义一个空数组用来存储数据public static $personInfo = [];//设置public static function setInfo($name, $sex, $age){array_push(self::$personInfo, array($name, $sex, $age));}//新增public function addData(array $data){array_push(self::$personInfo, $data);}//更新public function upData($source, $nvalue) {foreach (self::$personInfo as &$value) {$key = array_search($source, $value);foreach ($value as $key1 => $ovalue) {if ($key1 === $key) {$value[$key1] = $nvalue;}}}}//查询public function queData($seavalue) {foreach (self::$personInfo as &$value) {$key = array_search($seavalue, $value);foreach ($value as $key1 => $ovalue) {if ($key1 === $key) {return array_slice($value, $key1);}}}}//删除public function delData($svalue) {foreach (self::$personInfo as $value) {if (in_array($svalue, $value)){$key = array_search($value, self::$personInfo);unset(self::$personInfo[$key]);}}}}//客户端代码//设置SetPseronInfo::setInfo('小明', '男', 18);printf('<pre>1. 设置后此时的数据为<br>%s</pre>', print_r(SetPseronInfo::$personInfo, true));//新增(new SetPseronInfo)->addData(['小红', '女', 17]);(new SetPseronInfo)->addData(['小王', '男', 19]);(new SetPseronInfo)->addData(['小倩', '女', 18]);printf('<pre>2. 新增后此时的数据为<br>%s</pre>', print_r(SetPseronInfo::$personInfo, true));//更新(new SetPseronInfo)->upData('小红', '小雪');printf('<pre>3. 更新后此时的数据为<br>%s</pre>', print_r(SetPseronInfo::$personInfo, true));//查询printf('<pre>4. 查询的数据为<br>%s</pre>', print_r( (new SetPseronInfo)->queData('小雪'), true));//删除(new SetPseronInfo)->delData('小王');printf('<pre>5. 删除后此时的数据为<br>%s</pre>', print_r(SetPseronInfo::$personInfo, true));


//定义第一个接口interface iSetPersonInfo {//设置public static function setInfo($name, $sex, $age);}//定义第二个接口interface iCRUD {//新增public function addData(array $data);//更新public function upData($source, $nvalue);//查询public function queData($seaValue);//删除public function delData($seaValue);}//定义第三个接口继承自第一和第二个接口interface iPerson extends iSetPersonInfo, iCRUD {}//定义一个实现类class Pseron implements iPerson {//定义一个空数组用来存储数据public static $personInfo = [];//设置public static function setInfo($name, $sex, $age){array_push(self::$personInfo, array($name, $sex, $age));}//新增public function addData(array $data){array_push(self::$personInfo, $data);}//更新public function upData($source, $nvalue) {foreach (self::$personInfo as &$value) {$key = array_search($source, $value);foreach ($value as $key1 => $ovalue) {if ($key1 === $key) {$value[$key1] = $nvalue;}}}}//查询public function queData($seavalue) {foreach (self::$personInfo as &$value) {$key = array_search($seavalue, $value);foreach ($value as $key1 => $ovalue) {if ($key1 === $key) {return array_slice($value, $key1);}}}}//删除public function delData($svalue) {foreach (self::$personInfo as $value) {if (in_array($svalue, $value)){$key = array_search($value, self::$personInfo);unset(self::$personInfo[$key]);}}}}//客户端代码//设置Pseron::setInfo('小明', '男', 18);printf('<pre>1. 设置后此时的数据为<br>%s</pre>', print_r(Pseron::$personInfo, true));//新增(new Pseron)->addData(['小红', '女', 17]);(new Pseron)->addData(['小王', '男', 19]);(new Pseron)->addData(['小倩', '女', 18]);printf('<pre>2. 新增后此时的数据为<br>%s</pre>', print_r(Pseron::$personInfo, true));//更新(new Pseron)->upData('小红', '小雪');printf('<pre>3. 更新后此时的数据为<br>%s</pre>', print_r(Pseron::$personInfo, true));//查询printf('<pre>4. 查询的数据为<br>%s</pre>', print_r( (new Pseron)->queData('小雪'), true));//删除(new Pseron)->delData('小王');printf('<pre>5. 删除后此时的数据为<br>%s</pre>', print_r(Pseron::$personInfo, true));


//定义一个用户查询接口interface iUser {//定义构造方法:用于初始化对象属性public function __construct(...$params);//定义抽象方法:用于获取用户信息public function getUserInfo ();}//定义第一个实现类:获取普通用户的信息class ComUser implements iUser {//定义一个受保护属性:用于public static $id = null;//实现接口的构造方法public function __construct(...$params) {list($name, $sex, $age, $id) = $params;$this->name = $name;$this->sex = $sex;$this->age = $age;self::$id = $id;}//实现接口的抽象方法public function getUserInfo () {return '姓名:'.$this->name.' '.'性别:'.$this->sex.' '.'年龄:'.$this->age.' '.'会员状态:'.(self::$id ? '是会员' : '不是会员');}}//定义第二个实现类:获取会员用户的信息class PlusUser implements iUser {//定义一个受保护属性:用于public static $id = null;//实现接口的构造方法public function __construct(...$params) {list($name, $sex, $age, $id) = $params;$this->name = $name;$this->sex = $sex;$this->age = $age;self::$id = $id;}//实现接口的抽象方法public function getUserInfo () {return '姓名:'.$this->name.' '.'性别:'.$this->sex.' '.'年龄:'.$this->age.' '.'会员状态:'.(self::$id ? '是会员' : '不是会员');}}/*$p1 = new ComUser('小明', '男', 18, 0);echo $p1->getUserInfo();echo ComUser::$id;echo '<br>';$p2 = new PlusUser('小红', '女', 17, 1);echo $p2->getUserInfo();echo PlusUser::$id;*///定义一个通用工作类:当传进去的参数为不同的账户时,调用不同账户的相同的方法名,产生不同的效果class User {public function clearP($p) {return $p->getUserInfo();}}//客户端代码//实例化通用工作类$p = new User;//普通成员$p1 = new ComUser('小明', '男', 18, 0);echo $p->clearP($p1);echo '<br>';//会员$p2 = new PlusUser('小红', '女', 17, 1);echo $p->clearP($p2);

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