[转]类与PHP (V)

Classes and PHP

Let's do the table body now:

<TR>
<?php

$Tbody->TDOut("Kreisler");
$Tbody->TDOut("Rod");
$Tbody->TDOut("Cortlandt");
$Tbody->TDOut("New York");
$Tbody->TDOut("USA");
?>
</TR>

But this is still getting kind of lengthy. Couldn't we save some more steps? How about trying this:

<?php

function TROut($message) { /*And NO comments about fish, please! ;)   */

        PRINT "<TR>\n";
        $cells=explode("|",$message);
        $iterations=count($cells);
        $i=0;
        while ($i<$iterations) {
                list($message,$span)=explode(":",$cells[$i]);
                if (strlen($message)<1) $message=" ";
                if ($span){
                        $this->TDOut ($message,$span);
                }else{
                        $this->TDOut ($message);
                }
                $i++;
                }
        PRINT "</TR>\n";

}

?>

Wow! That's a little more complicated. Let's break it down:

Line 3 splits the message on pipes and stores the pieces in the array $cells. Line 4 stores the number of items (number of cells) in $iterations. Line 6 begins our loop to go through these cell items. Line 7 splits the cell data at the colon and stores them into the variables $message and $span. Line 8 checks to see if a message was included. If not then it sets message to the default. Line 9 checks to see if there was a span listed (i.e. the cell data had a colon with something behind it. if so, Line 10 calls TDOut with the message and the number of cells it spans. if not, Line 12 calls TDOut with just the message (TDOut will set $colspan to the default 1). Lastly, we close out the row.

What this means is we can pass a single string to TROut that will contain all the necessary information to print out the entire row as long as the string is in the format "celldata[:colspan]|celldata[:colspan]|......celldata[:colspan]".

So, instead of all the work we did before, the headers and body of the table could be called like this:

<TABLE>
<?
$Theader->TROut("Name:2|Address:3");
$Theader->TROut("First|Last|City|State/Province|Country");
$Tbody->TROut("Rod|Kreisler|Cortlandt|New York|USA");
?>
</TABLE>

Wow. That's a lot easier. But what if the data is in variables? Simply join the array:

<?php

$message=join($arry,"|");
$Tbody->TROut($message);

?>

时间: 2024-12-08 12:58:45

[转]类与PHP (V)的相关文章

威客们去哪儿 产业化威客模式V客网应运而生

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 威客,作为第一个由中国提出的互联网应用信息的细分模式,在中国已经发展了近十年,但它却不像其他的互联网细分模式那样广为人知,而是在特定的专业领域,为小部分人所使用,为少数人在创造价值. "威客"的本意是可以驾驭智慧的人,这些人在自己擅长的领域具有专业的知识.能力.经验等等,可以通过互联网让自己的专业能力发挥作用,解决别人在工

JAVA编程:方法调用传对象参数

下面是2个测试,分别测试可修改的Object和不可修改的 /** * JAVA里面对象参数的陷阱 * * @author 老紫竹的家(laozizhu.com) * */ public class Test { public static void main(String[] args) { TestValue tv = new TestValue(); tv.first(); TestInteger ti = new TestInteger(); ti.first(); } } class T

白话阿里巴巴Java开发手册(编程规约)

最近,阿里巴巴发布了<阿里巴巴Java开发手册>,总结了阿里人多年一线实战中积累的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过限制开发人员的编程风格.实现方式来避免研发人员在实践中容易犯的错误,同样的问题大家使用同样的模式解决,便于后期维护和扩展,确保最终在大规模协作的项目中达成既定目标. 无独有偶,笔者去年在公司里负责升级和制定研发流程.设计模板.设计标准.代码标准等规范,并在实际工作中进行了应用和推广,收效颇丰,也总结了适合支付平台的技术规范,由于阿里巴巴Java

阿里巴巴 Java 开发手册之编程规约(一)-------我的经验

阿里巴巴 Java 开发手册 一.编程规约 (一) 命名规约 1.[强制] 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束.(代码规范,易读) 反例: name / __name / $Object / name / name$ / Object$ 2.[强制] 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式. 说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义.注意,即使纯拼音命名方式 也要避免采用.(代码规范,易读) 反例: DaZhePr

阿里巴巴 JAVA 开发手册

阿里巴巴 JAVA 开发手册 1.0.0 阿里巴巴集团技术部 2016.12.7 首次向 Java 业界公开 一. 编程规约(一) 命名规约1. [强制]所有编程相关命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束.反例: _name / __name / $Object / name_ / name$ / Object$2. [强制]所有编程相关的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式.说明: 正确的英文拼写和语法可以让阅读者易于理解,避免歧义.注意, 即使

ORACLE--SGA之数据缓冲区(Data Buffer)

暨上通过预编译阐述道共享池最后到SGA,这里进一步说明一下SGA中另一个大块,数据缓冲区,携带提及一点数据文件和表空间,后续专门会说明这块.   首先了解下SGA种大致有那些东西,这些东西随着数据库版本的增加会有所增加,不过大致上应该一致,这也是基本所有的体系结构都会描述的东西:   在认识数据缓冲区前,先记住几个常用的视图: X$BH.GV$BH.V$BH.V$FIXED_TABLE.V$FIXED_VIEW_DEFINITION.DICT.DICT_COLUMNS.   以及两个包:DBMS

Hibernate学习大全

第1课 课程内容. 6 第2课Hibernate UML图. 6 第3课 风格. 7 第4课 资源. 7 第5课 环境准备. 7 第6课 第一个示例HibernateHelloWorld 7 第7课 建立Annotation版本的HellWorld 9 第8课 什么是O/RMapping 11 一.     定义:. 11 二.     Hibernate的创始人:. 11 三.     Hibernate做什么:. 12 四.     Hibernate存在的原因:. 12 五.     Hi

HashMap深度解析(一)

 本文来自:高爽|Coder,原文地址:http://blog.csdn.net/ghsau/article/details/16843543,转载请注明.        HashMap可以说是Java中最常用的集合类框架之一,是Java语言中非常典型的数据结构,我们总会在不经意间用到它,很大程度上方便了我们日常 开发.在很多Java的笔试题中也会被问到,最常见的,"HashMap和HashTable有什么区别?",这也不是三言两语能说清楚的,这种笔试题就 是考察你来笔试之前有没有复习

emacs+ensime+sbt打造spark源码阅读环境

概述 Scala越来越流行, Spark也愈来愈红火, 对spark的代码进行走读也成了一个很普遍的行为.不巧的是,当前java社区中很流行的ide如eclipse,netbeans对scala的支持都不算太好.在这种情况下不得不想到编辑器之神emacs,利用emacs+ensime来打造scala编程环境. 本文讲述的步骤全部是在arch linux上,其它发行版的linux视具体情况变通. 安装scala pacman -S scala 安装sbt pacman -S sbt 安装ensim

模拟hibernate实现的JAVA源码

实体类: package com.zzk.hibernate.model; public class Student { private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setN