文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>PHP 类

PHP 类

时间:2008-04-17  来源:剑心通明


用户定义的类,也是学好 php 所必备的条件之一。而 php 的类,和其它的
[url=javascript:;]面向对象[/url]
语言比较起来,还算蛮单纯的。php 只有类别 (class)、
[url=javascript:;]方法[/url]
(method)、属性、以及单一继承 (extensions) 等。对不习惯使用 c++、java、delphi 等面向对象语言来开发程序的用户,不妨先阅读一下有关面向对象概念的书,相信可以带来许多的收获。
下面的范例是手推车?类。可以看到,使用 class 表示它是一个类类别。在类别中的 function,例如 add_item 则表示该类的一个方法。方法可以封装类的实际处理情形,让该类自己能依封装好的方法来执行一些步骤。
程序中的 $this 类变量也和 $globals 及 $php_errormsg 两个变量一样,在 php 中属于特殊的变量。$this 变量只用在类类别中,表示类的本身。
items[$artnr] += $num;
}
// 本方法从手推车减少 $num 件物品 (从 $artnr 变量减掉)
function remove_item ($artnr, $num) {
if ($this->items[$artnr] > $num) {
$this->items[$artnr] -= $num;
return true;
} else {
return false;
}  
}
}
?>

要使用手推车可以用类似下例的方式。可以先将每个类存成 include 文件,再将它 require 或 include 进来。在定义变量 $cart 时,要使用 new 的保留字,表示 $cart 使用 cart 类。使用 -> 符号,表示执行类的方法。
add_item("10", 1);
?>

之后再设计有记名的手推车。记名手推车从手推车遗传下来,因此手推车拥有的方法及属性,记名手推车也有,而记名手推车比手推车增加了名字的方法 (或许该称属性较恰当)。
从下例中可以看到,子类 named_cart 使用 extends 来继承其父类 cart。虽然 named_cart 类中没有增加物品及减少物品的方法,不过由于遗传的特性,父类有的东西它都有。
owner = $name;
}
}
?>

要使用记名手推车类,请看下面的范例。当然这不算太好的设计,每个子类都一直 require 它的父类,会造成服务器在 i/o 上面的负担。在实作时,可以将整个系列的类在同一个程序文件中,从最早的袓先类到最后的子孙类,也方便日后修正。
set_owner ("cyberridder"); // 配置类的记名属性
echo $ncart->owner; // 显示类的记名属性
$ncart->add_item ("10", 1); // 从父类遗传的方法也可使用
?>

因此,在 php 中使用了 extends 保留字,加上良好的系统分析与完整的 crc 卡片 (详见面向对象相关书籍) 设计之后,php 可变成拥有强大类能力的 cgi 语言。
php 由于是脚本语言 (script),因此程序源
[url=javascript:;]代码[/url]
可见,在软件工程中的元件黑箱并不会在目前的 php 版本中出现,也就是说,全部的类其实没有隐藏起它的内容。对于软件业者而言,没有办法保护所谓的软件 ic,站在开放团体而言,反而有源代码是件好事,至于孰是孰非,就很难判定了,不过目前 php 还是 open source 团体的一份子,或许日后
[url=javascript:;]zend[/url]
引擎可以做到类封装的功能也不一定。


相关阅读 更多 +
排行榜 更多 +
哥布林弹球b服手游下载

哥布林弹球b服手游下载

休闲益智 下载
小马样式盒游戏下载

小马样式盒游戏下载

休闲益智 下载
异变小镇中文版下载安装

异变小镇中文版下载安装

冒险解谜 下载