技术开发 频道

Oracle和PHP入门

利用类和对象进行模块化编程

    在面向对象的编程语言出现之前,库是重用组件的首选工具。现在已经出现了 C++、Java 和许多其它的面向对象的语言,它们为代码重用提供了一种更先进、更不易出错的机制。PHP 也提供了这种功能,这是一件好事 — 因为任何中等复杂的 web 站点都需要它。

    例如,如果您在构建一个财务应用程序,您希望将您的所有财务公式和例程封装到可被重复调用的类或库中。如果您在构建一个电子商务站点,您希望将税收、信用卡处理的计算封装到独立的库中,并且可以在任何需要的时候包含这些库。

    让我们分析一个非常简单的例子来说明 PHP 中的这个概念。这是我建立的一个名为 someMath 的类:
<? 

class someMath {

var $defaultPower = 2;

function someMath ($inPower) {
$this->defaultPower = $inPower;
}

function defPower ($inNum) {
return $this->doPower ($inNum, $this->defaultPower);
}

function doPower ($inNum, $inPower) {
return pow ($inNum, $inPower);
}

function setPower ($inNum) {
$this->defaultPower = $inNum;
}

function getPower () {
return $this->defaultPower;

}

}

?>
    您可以看到,PHP 已经提供了一个函数来计算幂,因此这个类除了用一种非常简单的方式来演示如何将功能封装在类(您可以在整个代码范围内使用这些类)中之外,没有更多的意义。

    第一个函数是构造函数,传统上用来初始化您的类中的变量。构造函数始终具有和类本身相同的名称。接下来您看到两个类似的函数:一个函数使用类中设置的默认次方来计算幂,另一个函数要求您在每次调用它时告诉它您想要多少次方。注意 defPower 函数仅调用包含了类 $defaultPower 变量的 doPower 函数。最后,setPower 和 getPower 函数允许您与变量进行交互,否则这些变量将被隐藏在类外。

现在我们再用一段代码来使用我们的类:
<HTML> 
<TITLE>my class test</TITLE>
<BODY>

<H1>Testing someMath class</H1><p>


<H2>
<?php

require ("somemath.php3");
$mytest = new someMath (2);

$ansA = $mytest->defPower (10);
$ansB = $mytest->doPower (10,3);
$ansC = $mytest->doPower (2,8);
$ansD = $mytest->doPower (2,32);

echo "10 to the power of 2 is:$ansA<br>";
echo "10 to the power of 3 is:$ansB<br>";
echo "2 to the power of 8 is:$ansC<br>";
echo "2 to the power of 32 is:$ansD<p>";

?>
</H2>

</BODY>
</HTML>
    就是这么容易。您可以看到,我们以不同的方式使用了我们的类中的一些函数来计算不同的幂。当然可以扩展这些想法来为您的应用程序封装复杂的代码和功能。

    随着 PHP 的发展,许多程序员开发了他们自己的代码模块并将它们用于整个项目,从而促进了这一发展势头。历史上这种发展无章可循,直到创建了 PHP 扩展和应用程序信息库 (PEAR)。

    PEAR 提供了编码标准、一个基础类 (PFC) 集合、一个 web 站点和邮寄列表,从而使混乱的局面有序化。总而言之,它提供了一种结构 — 凭借该结构程序员可以推动整个 PHP 项目并促进接受新代码的标准。此外,如果您希望创建 PHP 的扩展,也为此提供了余地。

PHP 上路

    PHP 的全部就是实用性;它是以速度和快速部署为理念而构建的。因此虽然它提供了大量高级和复杂的特性,但它也可以非常快速直接地解决您的问题。请好好享用它吧!

    Sean Hull 是他的公司 iHeavy Inc. 的高级顾问,该公司位于纽约市。他专注于开放源代码技术与商业技术(如 Oracle)的集成,并已服务于多家成功的纽约公司。
0
相关文章