· 网络编程· 网页设计· 图形图像· 网站联盟· 数 据 库· 站长时代· 业界资讯· 网站运营· 黑客攻防· 电脑技巧

站长资讯 News
· ASP 专区 · PHP 专区
· JSP 专区 · NET 专区
· XML 专区 · CGI 专区
· 其他相关
热门文章
· FlashMdy快乐行
· 什么是Web3.0
· The World浏览器秘技..
· 游荡在个人网站大潮..
· ASP中Request对象获..
· 今日(2006-11-26)域..
· 实战 FastCGI_2. 安..
· 黑客入侵“在线影院..
· [图文] 认识FrontPag..
· [图文] 谢文写诗袒露..
相关文章
· 黑客技术:有史以来..
· PHP木马的攻击的防御..
· 关于php安全
· Ofstar和phpind论坛..
· phrak杂志第57期
· Buffer overflow ex..
· php.ini详解
· 关于Php后门的隐藏技..
· 常用PHP论坛程序集合..
· PHPWind 理想商城公..
您当前的位置:资源库 -> 网络编程 -> PHP 专区 -> 文章内容
PHP中实现面向对象编程
作者:无从考证  来源:天极网络  发布时间:2005-8-19 12:20:45  发布人:admin

减小字体 增大字体

  这篇文章介绍在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;
 }
}

?>


[1] [2] [3] [4]  下一页


 
 
[] [返回上一页] [打 印]
下一篇文章:SSI使用详解(二)