php设计模式 Interpreter(解释器模式)

yipeiwu_com6年前PHP代码库
复制代码 代码如下:

<?php
/**
* 解释器 示例
*
* @create_date: 2010-01-04
*/
class Expression
{
function interpreter($str)
{
return $str;
}
}
class ExpressionNum extends Expression
{
function interpreter($str)
{
switch($str)
{
case "0": return "零";
case "1": return "一";
case "2": return "二";
case "3": return "三";
case "4": return "四";
case "5": return "五";
case "6": return "六";
case "7": return "七";
case "8": return "八";
case "9": return "九";
}
}
}
class ExpressionCharater extends Expression
{
function interpreter($str)
{
return strtoupper($str);
}
}
class Interpreter
{
function execute($string)
{
$expression = null;
for($i = 0;$i<strlen($string);$i++) {
$temp = $string[$i];
switch(true)
{
case is_numeric($temp): $expression = new ExpressionNum(); break;
default: $expression = new ExpressionCharater();
}
echo $expression->interpreter($temp);
}
}
}
$obj = new Interpreter();
$obj->execute("12345abc");
?>

相关文章

yii2超好用的日期组件和时间组件

日期组件,时间组件在平时开发中是必不可少的。今天我们就来谈谈在yii2中的超好用的时间组件,也省的大家各种找js插件了。 分享之前我们先预览下效果,看看到底怎么个好用法。 当然啦,好用不...

php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)

复制代码 代码如下: <?php  /*   *读取文件内容至字符串中,同时去除换行、行首行尾空格。   */ header("Content-type: text/html; c...

php cout&amp;lt;&amp;lt;的一点看法

即整数与小数的位数之和不应该超过6位,如果小数部分过长,那么系统将按四舍五入法来近似成6位,如果整数部分过长,那么也近似成为6位例如: cout<<123.4567 结果是1...

php短域名转换为实际域名函数

复制代码 代码如下: $url = "http://sinaurl.cn/hbdsU5"; echo unshorten($url); function unshorten($url)...

php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍

最近一直在忙,赶在这个假期结束的时候,发表一下此文,为了是让这些源码开源出来当然这些方法可能不可取,但大致应该是这种方向了吧,由于目前做的一个UCHOME港台的站点咱们策划说要改一下好友...