增,删,改,插入,数据库模拟,一定要注意细节,千万别犯些低级错误
<?php
/*一个功能,可以分解成很多小的功能,可以一直细分下去,只到没有过分重复的代码。
重构,就是把一个小的功能,,拎出来,形成一个独立的服务。
这个函数虽然只有两行,但也确实是提供了一个服务。
原则: 重构一方面是重组代码;另一重要方面
是设计的的重构
*/
//require_once("User.class.php");
class NewUser extends User{
/**
*返回包含指定年龄间和性别的数组
* @param string $sex
* @param int $age1 $age2
* return array
*/
public function get_both_sex_ages($sex, $age1,$age2){
$temp = array();
$ages = $this->get_between_ages($age1,$age2);
foreach($ages as $c=>$v){
if($v['sex']==$sex){
array_push($temp,$v);
}
}
return $temp;
}
//因为$arr不是protected封装的,害我多花了n长时间。注意。。
/**
* 返回包含指定字符和性别的数组
* @param string $sex 性别
* @param string $word指定字符
* @return array
*/
public function get_both_word_sexs($sex,$word){
$temp = array();
$wds = $this->get_by_word($word);
foreach($wds as $v){
if($v['sex']==$sex){
array_push($temp,$v);
}
}
return $temp;
}
/**
*返会增加一个数组后的整个数组
* @param string name年龄 age年龄 sex性别 wj文件名
* @return array
*/
public function add_record($wj,$name,$age,$sex){
$id = count($this->arr)+1;
$temp = array("id"=>$id,"name"=>$name,"age"=>$age,"sex"=>$sex."\r\n");
array_push($this->arr,$temp);
$this->save_data($wj,$this->arr);
return $this->arr;
}
/**
* 返回修改数组后的新数组
* @param string wj文件名 name新名字 age新年龄 $newage新年龄
* @param int id
* return array
*/
public function update_record($wj,$id,$newname,$newage,$newsex){
$ar = array(array("id"=>$id,"name"=>$newname,"age"=>$newage,"sex"=>$newsex."\r\n"));
foreach($this->arr as $c=>$v){
if($id==$c+1){
array_splice($this->arr,$c,0,$ar);
}
}
$this->save_data($wj,$this->arr);
return $this->arr;
}
/**
* 返回删除一个数组后的新数组
* @param string wj文件名
* $param int id
* return array
*/
public function delete_record($wj,$id){
foreach($this->arr as $c=>$v){
if($id==$c+1){
$a=array_splice($this->arr,$c,1);
}
}
$this->save_data($wj,$this->arr);
return $this->arr;
}
/**
* 返回插入一个数组后的新数组
* @param string name姓名 age年龄 sex性别
* $param int id
* return array
*/
public function insert_record($wj,$id,$name,$age,$sex){
$ar = array(array("id"=>$id,"name"=>$name,"age"=>$age,"sex"=>$sex."\r\n"));
foreach($this->arr as $c=>$v){
if($id==$c+1){
array_splice($this->arr,$c,0,$ar);
}
}
$this->save_data($wj,$this->arr);
return $this->arr;
}
}
?>