php开源嘛
首页 | English | MySql数据库 | Php编程 | 建站杂烩 | 系统服务器 | 资源共享 | 专题 | 才桀网 | 支持论坛
  当前位置:主页>Php编程>文章内容
开发大型php项目的方法、oop面向对象
来源:收集整理 作者:本站整理 发布时间:2008-03-07  
 
PHP的面向对象编程:开发大型PHP项目的方法()
 
 
 
  "Another"类的对象现在拥有了父类(Something)的全部的数据成员及方法,而且还加上了自已的数据成 
员和方法。 
 
  你可以使用 
  $obj2=new Something; 
  $obj2->setX(6); 
  $obj2->setY(7); 
 
  PHP现在还不支持多重继承,所以你不能从两个或两个以上类派生出新的类来。 你可以在派生类中重定义一个方法,如果我们在"Another"类中重定义了getX方法,我们就不能使 
"Something"中的getX方法了。如果你在派生类中声明了一个与基派同名的数据成员,那么当你处理它时, 
它将“隐藏”基类的数据成员。 
 
  你可以在你的类中定义构造函数。构造函数是一个与类名同名的方法,当你创建一个类的对象时会被调 
用,例如: 
 
-------------------------------------------------------------------------------- 
<?php 
 
class Something { 
var $x; 
 
function Something($y) { 
$this->x=$y; 
} 
 
function setX($v) { 
$this->x=$v; 
} 
 
function getX() { 
return $this->x; 
} 
} 
 
?> --------------------------------------------------------------------------------
  所以你可以创建一个对象,通过: php开源com

  $obj=new Something(6);

  构造函数会自动地把6赋值给数据变量x。构造函数和方法都是普通的PHP函数,所以你可以使用缺省参数。

  function Something($x="3",$y="5")

  接着:

  $obj=new Something(); // x=3 and y=5
  $obj=new Something(8); // x=8 and y=5
  $obj=new Something(8,9); // x=8 and y=9

  缺省参数使用C++的方式,所以你不能忽略Y的值,而给X一个缺省参数,参数是从左到右赋值的,如果 传入的参数少于要求的参数时,其作的将使用缺省参数。

  当一个派生类的对象被创建时,只有它的构造函数被调用,父类的构造函数没被调用,如果你想调用基 类的构造函数,你必须要在派生类的构造函数中显示调用。可以这样做是因为在派生类中所有父类的方法都 是可用的。

--------------------------------------------------------------------------------
<?php 
 
function Another() { 
$this->y=5; 
$this->Something(); 
//显示调用基类构造函数 
} 
 
?>
--------------------------------------------------------------------------------
  OOP的一个很好的机制是使用抽象类。抽象类是不能实例化,只能提供给派生类一个接口。设计者通常 使用抽象类来强迫程序员从基类派生,这样可以确保新的类包含一些期待的功能。在PHP中没有标准的方法, 但是:

  如果你需要这个特性,可以通过定义基类,并在它的构造函数后加上"die" 的调用,这样就可以保证基 类是不可实例化的,现在在每一个方法(接口)后面加上"die" 语句,所以,如果一个程序员在派生类中没有 覆盖方法,将引发一个错误。而且因为PHP 是无类型的,你可能需要确认一个对象是来自于你的基类的派生 类,那么在基类中增加一个方法来实义类的身份(返回某种标识id),并且在你接收到一个对象参数时校验 这个值。当然,如果一个邪恶不好的程序员在派生类中覆盖了这个方法,这种方法就不起作用了,不过一般 问题多发现在懒惰的程序员身上,而不是邪恶的程序员。

  当然,能够让基类对程序员无法看到是很好的,只要将接口打印出来做他们的工作就可以了。

  在PHP中没有析构函数。

(阅读次数:
共5页: 上一页 [1] 2 [3] [4] [5] 下一页
上一篇:PHP传值和传引用、传地址的区别是什么?   下一篇:加快MySql速度、MySql的索引与优化...
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·PHP生成验证码图片的源代码
·PHP会话对(Session)使用入门
·Php部分常见问题总结[bug]
·php正则表达式的快速学习方法
·高手传经:学习PHP重在坚持
·用php生成静态页面的php函数
·PHP对文本数据库的基本操作方法
·用 PHP 读取文件的正确方法
·讲解PHP+MySQL的分页显示示例
·用PHP构建一个简易监视引擎
·我是怎样打造简单的PHP&MYSQL留
·用PHP实现表单验证码登陆校验
  相关文章
·PHP传值和传引用、传地址的区别
·PHP面向对象OOP编程快速入门...
·面向对象OOP的5原则:单一职责原
·怎样用php操作php文件的……
·面向对象OOP的5原则:开放封闭原
·OOP面向对象:Liskov替换原则--L
·PHP中的面向对象和面向过程OOP…
·依赖倒置原则(DIP) OOP面向对象.
·面向对象OOP的5原则:接口隔离原
·Web2.0时代PHP将受更多人的青睐
·增加PHP的Session存储和处理能力
·PHP面向对象技术OOP(全面讲解)、

关于我们 | 本站声明 | 友情连接 | 诚邀加盟 | 网站地图
版权Power by DedeCms   技术支持QQ =>> 罗江游鱼   Jacking  后台登陆
Copyright @ 2007 公司地址:柳州市东环路268号 邮编:545006 电话:15920389818 桂ICP备07006725号