标题: 一段代码从简单到复杂,从呆板到灵活,默默又一水帖
默默
新手上路
Rank: 1



UID 1217
精华 0
积分 0
帖子 0
阅读权限 10
注册 2007-6-9
发表于 2006-5-20 17:26  资料  个人空间  短消息  加为好友 
一段代码从简单到复杂,从呆板到灵活,默默又一水帖

原文地址:http://www.phpchina.com/bbs/viewthread.php?tid=5075


今天默默又来发水了,大家记得穿好雨衣(拿出大喇叭冲着对我的劝告不屑一顾的家伙们大喊:这不是演习,这不是演习!!)
今天默默发的水是关于如何打印 一句话.
我知道你现在在想什么,你肯定在想,不会吧,这水真的够"水"的啊,不要着急,有时候很简单的东西都可以复杂化,默默今天不是教你怎么把复杂做简单,而是教你怎么把简单做复杂,倒行逆施就是这么出来的.
开始.
我们知道,假如在PHP里要打印一句话很简单,比如

<?php
  echo "我爱中国";
  ?>

但是这样显示出来的效果,太单调,而且字体大小很不好看,在IE里也不好看.
于是你这么写

<?php
  echo "<font size=2 color=red >我爱中国</font>";
?>
或者
<font size=2 color=red>
<?php
echo "我爱中国";
?>
</font>

这样就显示2号红色的我爱中国.
但是你没发现虽然看起来舒服了,但是满屏幕的宋体,这个还是宋体,真是不个性啊.
那么你就会这么写

<?php
  echo "<font size=2 color=red face=黑体 >我爱中国</font>";
?>

这样的话,的确是显示出了比较个性的我爱中国,但是假如我现在要让你写
一个黑体的我爱中国,一个宋体的我爱中国,你是不是要复制两次这段话呢?真麻烦,那么让它不麻烦,这就要复杂一点了,哈哈,这次我们不再简单的echo了,我们要用到PHP里最常用,也是必须要学的函数.
于是这段代码就被写出来了

<?php
function showword($word,$face="",$size="2",$color="#000000"){
          echo "<font size=".$size." color=".$color." face=".$face." >".$word."</font>";
}
showword("我爱中国");
showword("我爱中国","黑体");
?>

你一定很奇怪,为什么我把那么简单的东西写的那么复杂,因为这篇文章就是要教你怎么复杂的,哈哈。
你还会奇怪,为什么我明明定义了四个参数,却每次只用一个到两个,而且程序还不报错,为什么自己定义的参数,用的时候不指定就会报错。
这个就在参数后面那个=(赋值号,记住,这不叫等号)身上,因为我之前已经给予了它默认值,所以假如在新的函数调用里不写参数的值也不会报错。
现在我们已经迈出了复杂的第一步了。现在向下一步迈进。
你要问了,都写的这么麻烦了,还能再复杂吗?当然,因为这样只不过是完成了打印带颜色,带字体的字符串而已,我们还要更复杂的。

<?php

class sword                      //构建一个类,名称为sword,也就是show word的简写
{
var $word;                       //声明类的成员
var $size="2";                   //声明类的成员并赋值,下面相同
var $color="#000000";
var $face="";


function sword($word){             //构造函数,指定word变量为你打算操作的字符串
        $this->word=$word;
        }
function _set($it,$value){         //设置函数,指定$it属性为$value值
        $this->$it=$value;
        }
function _get($it){                //获取函数,得到$it属性的值
        echo  $this->$it;
          }
function _len(){                   //长度函数,获得$word的长度
        echo strlen($this->word)/2;
        }

function _show(){                   //打印函数,打印出所设定的字符串
        echo "<font size=".$this->size." color=".$this->color." face=".$this->face.">".$this->word."</font>";
        }
}

$i=new sword("我爱中国");           //声明一个类,并通过构造函数指定$word的值
$i->_set("size","5");               //设置字体的size属性为5
$i->_get("size");                   //获得字体的size属性的值
$i->_len();                         //检查字符串的长度
$i->_show();                        //打印字符串
?>

你肯定会奇怪,这个是什么东西?这个就是让新手普遍头痛的类(oop),其实很简单,假如你仔细的看就会知道怎么来写和使用类了。
怎么样算是比较复杂了吧,虽然复杂,但是其更灵活,也更强大。
OK,今天就把打印字符串说到这里,写的比较仓促,假如出现什么漏洞之类的,还请大家指教修正,如有不明,或你有什么想法,请在跟帖里指出。

[ 本帖最后由 默默 于 2006-5-23 11:55 编辑 ]

顶部
 



当前时区 GMT+8, 现在时间是 2009-1-6 20:11

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
清除 Cookies - 联系我们 - PHP开源项目网 - Archiver - WAP