选择显示字体大小

php中实现面向对象编程

  这篇文章介绍在php的面向对象编程(oop)。我将演示如何用面向对象的概念编出较少的代码但更好的程序。祝大家好运。

  面向对象编程的概念对每一个作者来说都有不同的看法,我提醒一下一个面向对象语言应有的东西:

   - 数据抽象和信息隐藏
   - 继承
   - 多态性

  在php中使用类进行封装的办法:

class something {
// in oop classes are usually named starting with a cap letter.
var $x;

function setx($v) {
// methods start in lowercase then use lowercase to seprate
// words in the method name example getvalueofarea()
$this->x=$v;
}

function getx() {
return $this->x;
}
}

?>

  当然你可以用你自己的办法,但有一个标准总是好的。

  php中类的数据成员使用 "var" 定义,数据成员是没有类型直到被赋值。一个数据成员可能是一个 integer、数组、联合数组(associative array)或甚至对象(object). 方法在类里定义成函数,在方法里存取数据成员,你必须使用$this->name 这样的办法,否则对方法来说是一个函数的局部变量。

  使用 new 来创建一个对象

$obj = new something;

  然后使用成员函数

$obj->setx(5);
$see = $obj->getx();

  setx 成员函数将 5 赋给对象(而不是类)obj 中成员变量, 然后 getx 返回值 5.

  你也可以用对象引用来存取成员变量,例如:$obj->x=6; 然而,这不一种好的面向对象编程的方法。我坚持你应使用成员函数来设置成员变量的值和通过成员函数来读取成员变量。如果你认为成员变量是不可存取的除了使用成员函数的办法,你将成为一个好的面向对象程序员。 但不幸的是php本身没有办法声明一个变量是私有的,所以允许糟糕的代码存在。

  在 php 中继承使用 extend 来声明。

class another extends something {
 var $y;
 function sety($v) {
  // methods start in lowercase then use lowercase to seperate
  // words in the method name example getvalueofarea()
  $this->y=$v;
 }

 function gety() {
  return $this->y;
 }
}

?>

  这样类 "another" 的对象拥有父类的所用成员变量及方法函数,再加上自己的成员变量及成员函数。如:

$obj2=new another;
$obj2->setx(6);
$obj2->sety(7);

  多重继承不被支持,所以你不能让一个类继承多个类。

  在继承类中你可以重新定义来重定义方法,如果我们在 "another" 重新定义 getx,那么我们不再能存取 "something" 中的成员函数 getx. 同样,如果我们在继承类中声明一个和父类同名的成员变量,那么继承类的变量将隐藏父类的同名变量。

  你可以定义一个类的构造函数, 构造函数是和类同名的成员函数,在你创建类的对象时被调用。

class something {
 var $x;

 function something($y) {
  $this->x=$y;
 }

 function setx($v) {
  $this->x=$v;
 }

 function getx() {
  return $this->x;
 }
}

?>

本新闻共4


 


关键字 本文所属关键字

  • PHP  

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons