选择显示字体大小

wap与php - 进阶篇 之二


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(&#36;i=0;&#36;i<&#36;this->element_number;&#36;i++)
   &#123;
   &#36;the_element = &#36;this->card_element[&#36;i];
   switch (&#36;the_element->my_type())
   &#123;
   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:
    &#123;
    &#36;temp_element = &#36;this->card_element[&#36;i];
 
    &#36;temp_element->make_element(&&#36;this);

    break;
   &#125;
   default:
  &#123;
  break;
  &#125;
  &#125;
  &#125;

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

[1] [2]  下一页


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons