php做过哪些大型项目,php开发大型项目小结

class ==> 封装

class Student

{

var $sName;

function setName($theName)

{//must use this to "USE" member var;

//$sName = $theName;

this->x = $theName;

}

function getName()

{

return $this->x;

}

}

//

$s = new Stuend;

$s->setName("william");

echo $s->getName;

//=================

class 不支持 private

所以: $s->sName 也是对的,但是这样就违背了面向对象的思想。、

//=====

继承用 extends

class BigStudent extends Student

{

var $sAddress;

die function BigStudent($temp)

{

$this->x = $temp;

$this->Student();

}

function setAddress($Name="yourName",$address="wenZhou")//缺省

{

this->sAddress = $address;

}

function getAddresss()

{

return this->sAddress;

}

}//如果子类中包含了与父类中一样名称的函数名,那么它将“隐藏”基类的数据成员

bs = new BigStudent;

bs->setName(william);

bs0>setAddress("ShangHai pudong....");

bs = new BigStudent("");

bs = new BigStudent("dick");

bs = new BigStudent("dick","shanghai");

//==================

抽象类,不可被继承,只能提供接口。 而保证子类拥有预定的功能。

die,的方法,必须被重写,不然会报错。 基类不被程序员看到,是个很好的设计方法。

只要将接口打印出来做他们的工作就可以了

//====================

不支持析构函数,不支持重载

// PHP 是一种松散类型的语言

通过类型重载不起作用,然而通过参数的个数不同来重载也不起作用。

==============================

有时在OOP中重载构造函数非常好,这样你可以通过不同的方法创建对象(传递不同数量的参数)。在PHP

中实现它的技巧是:

//===============================================

class Myclass {

function Myclass() {

$name="Myclass".func_num_args();

$this->$name();

//注意$this->name()一般是错误的,但是在这里$name是一个将被调用方法的名字

}

function Myclass1($x) {

code;

}

function Myclass2($x,$y) {

code;

}

}

//===========================================

?>

//========================================

多态。就是通过传进来的参数来,确的调用哪个类的方法。 动态绑定调用的。

function nicePic($obj)

{

$obj->draw();

}

根据构建的类别对象来,识别调用不同的draw()方法。

//

Php是个混合语言。 不是一个真正的面向对象的语言。

大型项目,你可能想/需要在PHP 中使用 纯的OOP去声明类,而且在你的项目只用对象和类。

随着项目越来越大,使用OOP可能会有帮助,OOP代码很容易维护,容易理解和重用。

这些就是软件工程的基础。在基于web的项目中应用这些概念就成为将来网站成功的关键。

//-----------------------------------

序列化(Serializing)

PHP不支持永久对象,但可以用 序列化机制 去完成

序列化方法可以返回对象的字符串表示。然而,序列化只保存了对象的成员数据而不包话方法。

//-------------------

如果你将对象序列化到字符串$s中,然后释放对象,接着反序列化对象到$obj,你可以继续

使用对象的方法!我不建议这样去做。  因为不标准

//====================

总而言之,PHP 进行序列化对于保存对象的成员变量非常有用

$obj=new Classfoo();

$str=serialize($obj);

//保存$str到磁盘上

//几个月以后

//从磁盘中装入str

$obj2=unserialize($str)

?>---------------------------------------------------

//现在没有完全序列化的功能,希望以后有。

//========================

//=============================

//==================================

使用类进行存储数据 ??

所以假设你创建了一个"Universe"的类,并且强制所有的类都必须从universe扩展,你可以在universe

中定义一个clone的方法,如下:

-----------------------------------------------------

class Universe {

function clone() {

$herring=serialize($this);

$vec=explode(':',$herring);

$nam=str_replace("/"",'',$vec[2]);

$ret=new $nam;

return $ret;

}

}

//然后

$obj=new Something();

//从Universe扩展

$other=$obj->clone();

?>---------------------------------------------------

From: www.linux163.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值