练习笔记12

·与java相同,final关键字是使用了他的方法或属性,子类是无法覆盖的,而且类如果给声明为final则无法被继承的。
·final关键字位置在访问控制符之前。
·static的成员变量是在不被实例化的情况就可以直接访问的,但是不能通过对象的引用来访问(静态方法除外)。所以$this不能用了。
·接口,必须是public的。只有函数头。可指定一个类去实现这个方法。
·类型转换的判别,php的自动类型转换的一个例子是加号+.$foo = "0";//字符串$foo += 12;//为整数$foo = $foo + 1.3;//为浮点类型。
·强制转换,与java一样,也是在所要转换的变量前加“(封装类型)”。
·当将@放在表达式之前,该表达式产生的错误可能会被忽略。不能被放在函数或类定义之前,也不能用于条件结构,如if,foreach。只对表达式有效。
·数组运算符“+”的意思是,将数组合并,但合并也有规矩,就是将键值不同的合并。而不考虑这些因素的数组合并函数就是array_merge().
·instanceof用于判断一个php变量是否属于某个类的实例。
·继承时利用原有的方法,要小心使用。
·最最重要的一点,注释要写的别人一目了然

<?php
/*一个功能,可以分解成很多小的功能,可以一直细分下去,只到没有过分重复的代码。
重构,就是把一个小的功能,,拎出来,形成一个独立的服务。 
这个函数虽然只有两行,但也确实是提供了一个服务。
原则: 重构一方面是重组代码;另一重要方面
是设计的的重构
*/

require_once("User.class.php");

class NewUser extends User{
	/**
	*返回包含指定年龄间和性别的数组
	* @param string $sex
	* @param int $age1 $age2
	* return array
	*/
	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 
	 */
	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年龄 $sex 性别
	* @param int $age年龄
	* @return array
	*/
	function add_record($name,$age,$sex){
		$temp = array("name"=>$name,"age"=>$age,"sex"=>$sex);
		array_push($this->arr,$temp);
		return $this->arr;
	}
	
	/**
	* 返回修改数组后的新数组
	* @param string $name姓名 $newname新姓名 $sex性别 $newsex新性别
	* @param int $age年龄 $newage新年龄
	* return array
	*/
	function update_record($name,$age,$sex,$newname,$newage,$newsex){
		$ar = array(array("name"=>$newname,"age"=>$newage,"sex"=>$newsex));//这里为什么是个二维的??
		foreach($this->arr as $c=>$v){
			if($this->arr[$c]['name']==$name&&$this->arr[$c]['age']==$age&&$this->arr[$c]['sex']==$sex){
				array_splice($this->arr,$c,1,$ar);
			}
		}
		return $this->arr;
		
	} 
	
	/**
	* 返回删除一个数组后的新数组
	* @param string $name姓名 $sex性别
	* $param int $age年龄
	* return array
	*/
	function delete_record($name,$age,$sex){
		foreach($this->arr as $c=>$v){
			if($this->arr[$c]['name']==$name&&$this->arr[$c]['age']==$age&&$this->arr[$c]['sex']==$sex){
				$a=array_splice($this->arr,$c,1);
			}
		}
		return $this->arr;
	
	}  

}



?>


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值