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

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

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

- 数据抽象和信息隐藏

- 继承

- 多态性

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

<?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 来声明。

<?php
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;
   }
}
?>

时间: 2024-12-17 03:35:27

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

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

这篇文章介绍在 PHP 的面向对象编程(OOP).我将演示如何用面向对象的概念编出较少的代码但更好的程序.祝大家好运.   面向对象编程的概念对每一个作者来说都有不同的看法,我提醒一下一个面向对象语言应有的东西:  - 数据抽象和信息隐藏  - 继承  - 多态性  在PHP中使用类进行封装的办法:  <?php  class Something {      // In OOP classes are usually named starting with a cap letter.     

Lua中的面向对象编程详解_Lua

简单说说Lua中的面向对象 Lua中的table就是一种对象,看以下一段简单的代码: 复制代码 代码如下: local tb1 = {a = 1, b = 2} local tb2 = {a = 1, b = 2} local tb3 = tb1   if tb1 == tb2 then      print("tb1 == tb2") else      print("tb1 ~= tb2") end   tb3.a = 3 print(tb1.a) 上述代码会输

PHP中实现面向对象编程(下)

编程|对象 多态性 多态性被定义为当在运行时刻一个对象作为参数传递时,对象能决定调用那个方法的能力.例如,用一个类定义了方法 "draw",继承类重定义 "draw" 的行为来画圆或正方形,这样你就有一个参数为 x 的函数,在函数里可以调用$x->draw(). 如果支持多态性,那么 "draw" 方法的调用就取决于对象 x 的类型.多态性在PHP中很自然被支持(想一想这种情况在C++编译器中如果编译,那一个方法被调用?然而你不知道对象的类

PHP中实现面向对象编程(上)

编程|对象 这篇文章介绍在PHP的面向对象编程(OOP).我将演示如何用面向对象的概念编出较少的代码但更好的程序.祝大家好运. 面向对象编程的概念对每一个作者来说都有不同的看法,我提醒一下一个面向对象语言应有的东西: - 数据抽象和信息隐藏 - 继承 - 多态性 在PHP中使用类进行封装的办法: class Something { // In OOP classes are usually named starting with a cap letter. var $x; function se

PHP中实现面向对象编程

编程|对象   这篇文章介绍在PHP的面向对象编程(OOP).我将演示如何用面向对象的概念编出较少的代码但更好的程序.祝大家好运. 面向对象编程的概念对每一个作者来说都有不同的看法,我提醒一下一个面向对象语言应有的东西: - 数据抽象和信息隐藏 - 继承 - 多态性 在PHP中使用类进行封装的办法: class Something { // In OOP classes are usually named starting with a cap letter. var $x; function

VB.NET中的面向对象编程特征

编程|对象 Visual Basic 7也被称作VB.NET,具备了面向对象(OOP)编程语言的所有特征.对于VB编程人员来说,面向对象的概念和面向对象编程方式都不陌生.       如果问一个面向对象程序设计高手什么是面向对象程序设计语言?他可能会说出一大堆诸如类.接口.消息隐匿.封装.继承.多态性这样的名词,这些名词听起来都很酷,不是吗?但面向对象编程并非通过一两天的学习或听一次课就能掌握的.要真正地掌握面向对   象程序设计,不但需要掌握一定的理论知识,同时还要进行一些实际的编程练习.本文

简述Python中的面向对象编程的概念_python

面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行.为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度. 而面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象

Javascript中的面向对象编程实例

一直以来,我都主要是做winform方面的编程,最近做了点web方面的,所以也研究了几天的javascript.偶有心得故记之: 应用面向对象的思想在javascript中同样适用,关键的是你敢不敢用,想不想用. 我曾使用vs2005编写了一个vs2003工具箱完全类似的导航工具条,我比较喜欢在winform中通过这种方式向用户提供应用程序功能的导航.所以我也想在web中也使用这种方式.网络上这样的例子很多,但是看过以后都感觉编码比较复杂,不容易扩展.所以我决定应用vs2005中开发的经验,用j

Python中的面向对象编程详解(上)_python

创建类 Python 类使用 class 关键字来创建.简单的类的声明可以是关键字后紧跟类名: 复制代码 代码如下: class ClassName(bases):     'class documentation string' #'类文档字符串'     class_suite #类体 实例化 通过类名后跟一对圆括号实例化一个类 复制代码 代码如下: mc = MyClass() # instantiate class 初始化类 'int()'构造器 def __int__(self):