关于我们 广告服务 社区论坛
设为首页 加入收藏

行业新闻
服 务 器
模版下载
建站指南
冲浪宝典
办公软件
网站运营
操作系统
QQ 专题
网页制作
安全防御
视频教程
网络编程
SEO专区
软件下载
图像设计
Cisco
网页特效
Wap 技术
联盟赚钱
网页素材
 首页 | 企业建站 | 网页制作 | 网站运营 | 网络编程 | 图像设计 | 冲浪宝典 | 操作系统 | SEO专区 | 联盟赚钱 | Cisco

欢迎来到e天下网络首页>>Wap技术>>WAP教程>>正文|WAP与PHP - 进阶篇 之二

WAP与PHP - 进阶篇 之二

[ 来路:网络    时间:2007-7-11 15:05:45    点击: ]

 

WAP与PHP - 进阶篇
WAP&PHP | 基础篇 | 附件
2.对象实现
  我们将利用以上定义的常量和函数实现我们定义的若干对象。我们从上层对象开始,逐步向下实现,上层对象可以调用下层对象的方法。在实现过程中可以经常参考图1,明确对象的关系。


2.1 Deck对象的实现 2.2 Text对象的实现 2.3 Image对象的实现
2.4 Table对象的实现 2.5 Row对象的实现 2.6 Hyperlink对象的实现
2.7 Input对象的实现 2.8 Select对象的实现 2.9 Do对象实现
2.10 Fieldset对象的实现

2.1 Deck对象的实现 [TOP]
  首先确定Deck对象的属性,如表1所示。

属性名称 含义
$card_title 标题
$card_alignment 页面格式
$card_element Card所包含的元素,如Text、Table等
$element_number Card中所包含的元素数目
$default_item 变量及其默认值数组
$default_number 默认值数组元素数目
表1 Deck对象的属性

接着确定Deck对象的方法,如表2所示。

方法名(函数) 功能
My_Deck 自构函数,对象创建时被自动调用
Add_Element 加入元素,如Text、Image、Table、Hyperlink、Input、Select、Do等
Make_Deck 建立Deck(最关键的函数,它将最终产生需要的Deck)
表2 Deck对象的方法

  在我们所定义的函数中,比较复杂的是Add_Element函数和Make_Deck函数。
  
  Add_Element函数的入口参数为任何一种所定义的元素,如Text、Image等。函数开始先进行入口参数的检查,判断是否为合法对象,这种检查还会经常出现在后续的对象实现中。如果检查入口参数不是对象,则将出错退出。接下来判断入口参数是否为我们已经定义过的对象种类,如果是,则将其假如到card_element属性中,并使element_number计数器加1。如果入口参数是无法识别的对象,则程序报错退出。
  Make_Deck函数很复杂,我们按以下步骤实现:
  1.发送标头;
  2.产生Deck头代码;
  3.利用相应对象封装的get_defaults函数获取某些元素,如Select、Fieldset等中的变量的默认值(如果存在);
  4.如果缺省值存在,列出与缺省值相关的代码,即进入页面后自动刷新相应变量为缺省值;
  5.设置页面格式;
  6.对Deck中包含的每一个对象调用其封装的Make_Element函数产生各自的代码;
  7.产生Deck结束代码。
  
  虽然我们在此列出的步骤很简单,但是具体的实现却牵扯到很多细节,而这些实现需要编程人员对WML语言比较了解,特别是对Deck和Card的构造很熟悉。下面列出了其中比较复杂的获取变量默认值部分的代码和创建各元素部分代码的源程序,这两个部分体现了PHP语言面向对象编程的特点。



 //获取交互元素如Input,Select的一些变量默认值
  while(list($thekey,$thevalue)=each($this->card_element))
  {
  switch($thevalue->My_Type())
  {
  case I_AM_SELECT:
  case I_AM_FIELDSET:
  {
  $temp_element=$thevalue;

  $temp_default=$temp_element->get_defaults();
  
  if($temp_default)
  {
   $this->default_item[$this->default_number]=$temp_default;

   $this->default_number++;
   break;
   }
   default:
   {
   break;
   }
  }
  }

 //产生相关元素各部分的代码
   for($i=0;$i<$this->element_number;$i++)
   {
   $the_element = $this->card_element[$i];
   switch ($the_element->My_Type())
   {
   case I_AM_TEXT:
   case I_AM_IMAGE:
   case I_AM_TABLE:
   case I_AM_HYPERLINK:
  case I_AM_INPUT:
  case I_AM_SELECT:
  case I_AM_D
  case I_AM_FIELDSET:
    {
    $temp_element = $this->card_element[$i];
 
    $temp_element->Make_Element(&$this);

    break;
   }
   default:
  {
  break;
  }
  }
  }

  由于篇幅原因,细节实现不在此讨论,读者可以参阅所附的代码。

::::站长友情提示:多花一分钟学点什么都好::::

 

上一篇:WAP与PHP - 附件  下一篇:WAP与PHP - 进阶篇 之一

 ::热点信息::

 

= = 免责声明 = =

① 欢迎转载我网所刊信息,请注明“来源:E天下网络”。
② 凡本网注明“来源:XXX(非E天下网络)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请在30日内进行。
※联系方式:Airtofly@163.com

::推荐文章::

 

应该如何建设支持3G的光传输网

::图像设计::

 

动态图片搜索家——GIF RUNN
软件搜索利器——FileFerret
实例说明构图要讲规律
Character Builder让你尽展靓
全景图速成者Cool360
三维模型速成工具——Canoma
剪贴专家SmartBoard 32
新世纪的图像处理利器——Ph
更多内容..

 

 

关于我们 广告服务 友情链接 合作伙伴 社区论坛 免责声明

Copyright © 2007   21kn.com Inc. All rights reserved.e天下网络工作室

网站白天客服QQ:26875416 (非24小时)  合作QQ:597004688    粤ICP备06026423号