博学而笃志 切问而近思 仁在其中
详情
PHP中的面向对象编程:通向大型PHP工程的办法
作者:Aliot     发布时间:2017-07-02     评论:0     阅读:0

PHP中的面向对象编程:通向大型PHP工程的办法

时间:2011-02-17 Luis Argerich

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


相关文章
loading......
最新动态
所有评论

loading......

网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册