练习笔记4
2012-06-09 09:18
106 查看
对函数进行重构:
<?php /*一个功能,可以分解成很多小的功能,可以一直细分下去,只到没有过分重复的代码。 重构,就是把一个小的功能,,拎出来,形成一个独立的服务。 这个函数虽然只有两行,但也确实是提供了一个服务。 原则: 重构一方面是重组代码;另一重要方面是设计的的重构 原则:require 的文件,所提供的只是服务,以函数形式提供的服务,不能直接利用代码 原则: require 在 99% 的情况下都只会出现在php文件的最前面,不会出现在正文中,更不会出现在函数体中。 arr使用了全局变量 接下来再弄那个html语言 ok,html语言终于弄完,这里是利用函数传参数做到的 */ function isNotExist(){ echo "Does not exist<br/>"; echo "<a href=\"http://localhost/Reconstruction/Reconstruction002/all.php\">重新输入</a>"; } $arr=array( array("name"=>"张三","age"=>12,"sex"=>"男"), array("name"=>"李四","age"=>25,"sex"=>"男"), array("name"=>"王五","age"=>18,"sex"=>"男"), array("name"=>"李利","age"=>16,"sex"=>"女"), array("name"=>"陈明","age"=>25,"sex"=>"男"), array("name"=>"张晓","age"=>25,"sex"=>"女"), array("name"=>"李明","age"=>15,"sex"=>"男"), array("name"=>"赵亮","age"=>25,"sex"=>"男"), array("name"=>"张月","age"=>22,"sex"=>"男"), array("name"=>"王青","age"=>21,"sex"=>"女") ); $b=""; $d=0; function name_age_sex($num){ global $b; global $d; global $arr; $d = $d+1; $a = "<tr> <td>".$d."</td> <td>".$arr[$num]['name']."</td> <td>".$arr[$num]['age']."</td> <td>".$arr[$num]['sex']."</td> </tr>"; return $a; } //因为第13行的变量而忙乎了很长时间 //或者说是函数吧,将函数也用引用的方式,有时不同函数引用该函数,而不引用你的而你所写的函数 //. 将数据以表格形式返回 function get_all(){ global $b; global $d; global $arr; foreach($arr as $c=>$v){ $a=name_age_sex($c); $b=$b.$a; /*$d = $d+1; $a = "<tr> <td>".$d."</td> <td>".$arr[$c]['name']."</td> <td>".$arr[$c]['age']."</td> <td>".$arr[$c]['sex']."</td> </tr>"; $b = $b.$a; */ } if($b==""){ isNotExist(); } return $b; } //提供一个方法,要求可以返回指定岁数的记录 function get_by_age($age){ global $b; global $d; global $arr; foreach($arr as $c=>$v){ if($arr[$c]['age']==$age){ $a=name_age_sex($c); $b=$b.$a; } } if($b==""){ isNotExist(); } return $b; } //提供一个方法, //要求可以返回某一个岁数范围内的所有记录(两个参数,代表年龄范围) function get_between_ages($age1,$age2){ global $arr; global $b; global $d; foreach($arr as $c=>$v){ if($arr[$c]['age']>=$age1&&$arr[$c]['age']<=$age2){ $a=name_age_sex($c); $b=$b.$a; } } if($b==""){ isNotExist(); } return $b; } //提供一个方法,要求返回指定姓名的数据 function get_by_name($name){ global $arr; global $b; global $d; foreach($arr as $c=>$v){ if($arr[$c]['name']==$name){ $a=name_age_sex($c); $b=$b.$a; } } if($b==""){ isNotExist(); } return $b; } //提供一个方法,要求返回指定年龄和性别的数据 function get_both_age_sex($age,$sex){ global $arr; global $b; global $d; foreach($arr as $c=>$v){ if($arr[$c]['age']==$age&&$arr[$c]['sex']==$sex){ $a=name_age_sex($c); $b=$b.$a; } } if($b==""){ isNotExist(); } return $b; } //提供一个方法,要求返回指定性别的年龄总和 function get_by_sexs($sex){ global $arr; global $b; global $d; foreach($arr as $c=>$v){ if($arr[$c]['sex']==$sex){ $d=$arr[$c]['age']; $b=$b+$d; } } if($b==""){ isNotExist(); } return $b; } //提供一个方法,要求返回指定性别的数据 function get_by_sex($sex){ global $arr; global $b; global $d; foreach($arr as $c=>$v){ if($arr[$c]['sex']==$sex){ $a=name_age_sex($c); $b=$b.$a; } } if($b==""){ isNotExist(); } return $b; } //提供一个方法,要求返回指定(姓氏)的数据 function get_by_firstname($firstname){ global $arr; global $b; global $d; foreach($arr as $c=>$v){ $e=$arr[$c]['name']; $f=substr($e,0,2); if($f==$firstname){ $a=name_age_sex($c); $b=$b.$a; } } if($b==""){ isNotExist(); } return $b; } //汉字相当于两个字母 //提供一个方法,返回姓氏最多的数据 function get_mostname(){ global $arr; global $b; global $d; $arra=array(); $array=array(); $zf=""; foreach($arr as $c=>$v){ $e=$arr[$c]['name']; $f=substr($e,0,2); $b=$f.$b; } foreach($arr as $c=>$v){ $e=$arr[$c]['name']; $f=substr($e,0,2); $m=substr_count($b,$f);//字符出现次数 array_push($arra,$m); } for($m=0;$m<count($arra);$m++){ for($i=count($arra);$i>0;$i--){ for($j=0;$j<=count($arra);$j++){ if($arra[$i]>$arra[$j]){ unset($arra[$j]); } } } } array_pop($arra);//移除最后个单元 foreach($arra as $c=>$v){ array_push($array,$c);//位置 } //var_dump($arra); foreach($array as $c=>$v){ $d=$d+1; $z="<tr> <td>".$d."</td> <td>".$arr[$v]['name']."</td> <td>".$arr[$v]['age']."</td> <td>".$arr[$v]['sex']."</td> </tr>"; $zf=$zf.$z; } if($zf==""){ isNotExist(); } return $zf; } //提供一个方法,返回名称中包含指定字符的数据 function get_by_word($word){ global $arr; global $b; global $d; foreach($arr as $c=>$v){ $e=$arr[$c]['name']; for($i=0;$i<strlen($e);$i++){ $f=substr($e,$i,2); if($f==$word){ $a=name_age_sex($c); $b=$b.$a; } } } if($b==""){ isNotExist(); } return $b; } //提供一个方法,返回指定性别的人记录,在指定年后的年纪的数据 function get_between_sex_year($sex,$year){ global $arr; global $b; global $d; foreach($arr as $c=>$v){ $age=$arr[$c]['age']; if($arr[$c]['sex']==$sex){ $number=idate("Y")-$year; if($number>$age){ $a=name_age_sex($c); $b=$b.$a; } } } if($b==""){ isNotExist(); } return $b; } //提供一个方法,返回数据记录,在名称后面都加上"先生"或"小姐" function get_both_miss_mr(){ global $arr; global $b; global $d; foreach($arr as $c=>$v){ $d=$d+1; if($arr[$c]['sex']=="男"){ $a="<tr> <td>".$d."</td> <td>".$arr[$c]['name']."先生</td> <td>".$arr[$c]['age']."</td> <td>".$arr[$c]['sex']."</td> </tr>"; $b=$b.$a; }elseif($arr[$c]['sex']=="女"){ $a="<tr> <td>".$d."</td> <td>".$arr[$c]['name']."小姐</td> <td>".$arr[$c]['age']."</td> <td>".$arr[$c]['sex']."</td> </tr>"; $b=$b.$a; } } if($b==""){ isNotExist(); } return $b; } //提供一个方法,返回按年龄排序后的记录 function get_order_age(){ global $arr; global $b; global $d; $array=array(); foreach($arr as $c=>$v){ $a=$arr[$c]['age']; array_push($array,$a); } asort($array); foreach($array as $c=>$v){ $a=name_age_sex($c); $b=$b.$a; } if($b==""){ isNotExist(); } return $b; } //提供一个方法,返回数据,姓氏一样的挨到一起 function get_order_firstname(){ global $arr; global $b; global $d; $array=array(); foreach($arr as $c=>$v){ $a=$arr[$c]['name']; array_push($array,$a); } asort($array); foreach($array as $c=>$v){ $a=name_age_sex($c); $b=$b.$a; } if($b==""){ isNotExist(); } return $b; } ?>
相关文章推荐
- 刷题笔记:牛客字符串专项练习8
- 学习笔记---链表练习,模仿StringBuilder的山寨版StringBuilder
- Python练习数据结构笔记
- 菜鸟学习linux笔记与练习-----第二天。一些基本命令以及初级网络配置
- html学习笔记(2)-字母大小写转换练习
- Java 基础一些代码练习笔记( Interator)
- java编程思想第4版第15章泛型擦除笔记及练习21
- C#学习笔记之——一些练习(包含了一些out的使用,string的使用,StringBuilder的使用,类的属性,最大公约数的求法,还有英雄,武器类的设置)
- 原生JS实例练习——控制div属性—— JS学习笔记2015-8-4(第93天)
- 算法笔记_052:蓝桥杯练习Multithreading(Java)
- 韩顺平php视频笔记44 php小练习表单提交
- 【SQL注入之sqli-labs】Less 1 - Less 5 练习笔记
- 笔记13 | 练习Volley(二)加载网络图片的三种方法
- JavaScript 学习笔记十 练习任务系统
- c笔记08---变量,栈,秒表练习,关键字 static,指针变量和变量的指针
- uc笔记02---错误处理,练习:实现求和求平均值等功能,errno
- c/c++ 练习笔记
- Python练习笔记——利用递归求年龄,第五个比第四个大2岁...
- vim 进阶练习总结笔记
- RE练习笔记一