PHP 面向对象随笔


以动手实践为荣 , 以只看不练为耻;
以打印日志为荣 , 以单步跟踪为耻;
以空格缩进为荣 , 以制表缩进为耻;
以单元测试为荣 , 以人工测试为耻;
UnitTest很不错
Nose也很好用
配合Profile很爽
配合pdb也不错
以模块复用为荣 , 以复制粘贴为耻;
以多态应用为荣 , 以分支判断为耻;
以Pythonic为荣 , 以冗余拖沓为耻;
以总结分享为荣 , 以跪求其解为耻;


done 数据库迁移看了
doing 学习系统添加文章和答案
想到有重复的地方就可以复用来做.

php面向对象的几点有趣的技巧:
试验了了一下,
1.在使用面向对象的类的设计上,属性使用private 然后使用魔术方法__get __set
__iset __unset
2.在使用了__set方法后,即使对象中没有某个属性也能为之产生并赋值

<?php
/*
* 测试__set() __get() __isset() __unset()
*/
class Test {

private $name;
private $age;
private $telPhones;

public function __construct($name = 'anonymous',$age = 0,$telPhone = ''){
$this->name = $name;
$this->age = $age;
return true;
}

/*
* 外部赋值方法
*/
public function __set($propertyName,$value){
return($this->$propertyName = $value);
}

/*
* 外部取值方法
*/
public function __get($propertyName){
if(isset($this->$propertyName)){
return($this->$propertyName);
}else{
return(NULL);
}
}
}

$test = new Test('lining',20,135);
echo $test->name;
$test->name1= "hhaha";
echo $test->name1;

?>

3. echo(),print(),unset(),isset(),empty(),include(),require()
这些为语句结构而不是函数,请不要获取返回值
4.静态和非静态类方法,非常重要
5.克隆对象,在PHP中类的赋值默认为引用赋值,要使用多个独立的相同的对象必须使用克隆
新的对象 = clone 旧的那个对象
系统自动调用__clone() 方法
function __clone()
{
//$this 指的复本 p2, 而$that 是指向原本 p1,这样就在本方法里,改变了复本的属性。
$this->name="我是假的$that->name";
$this->age=30;
}
6.PHP函数不支持重载,但是可以使用默认参数的方法实现
function overloadFun($param1, $param2 = '1',$param3 = true)
{
// do something
}
7.对象在传输和文件存放时,需要进行串行话,然后反串行化,__sleep and __wakup

posted @ 2012-12-13 15:37  linksgo2011  阅读(173)  评论(0编辑  收藏  举报