首 页WAP教程WAP源码WAP电子书客户留言龙腾电脑维修网158网络电视本站论坛繁體中文
设为首页
加入收藏
联系我们
您当前的位置:WAP开发网 -> WAP教程 -> PHP WAP开发教程 -> 文章内容 退出登录 用户管理
栏目导航
· ASP WAP开发教程 · ASP.net WAP开发教程
· PHP WAP开发教程 · WML教程
· JSP开发WAP教程 · WAP 2.0
· 综合杂谈
热门文章
· WAP 2.0教程
· WML语言基础(WAP建站...
· 用VS2005实现ASP.NE...
· [组图] php WAp开发教程
· WML语言基础(WAP建站...
· VS.NET 2003开发移动...
· [图文] ASP技术进行动态WAP...
· [图文] WML语言基础(WAP建站...
· asp.net移动控件开发...
· [图文] 创建移动Web应用程序...
相关文章
· PHP与WAP技术
· php实现wap手机下载...
· 用php实现wap手机下...
· 在PHP的图形函数中显...
· php开发wap常用技巧...
· PHP建立动态的WML站...
· 使用PHP动态输出WML...
· 如何使用PHP来书写动...
· PHP开发WAP常见问题...
· WML,Apache,和 PHP ...
WAP与PHP - 进阶篇 之二
作者:不详  来源:不详  发布时间:2006-2-21 11:18:47  发布人:tangyunfei

减小字体 增大字体


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 - 附件
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 管理登录
Copyright © 2002-2005 wapkf.com. All Rights Reserved .
浙ICP备06013604号|站长QQ:274273595