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");
?>

相关文章

PHP安装BCMath扩展的方法

PHP安装BCMath扩展的方法

编译安装 (PHP-5.6.23) 1.进入PHP源码包目录下的ext/bcmath目录。 [root@192 bcmath]# ls bcmath.c config.m4...

PHP开发过程中常用函数收藏

1.打印数组函数 复制代码 代码如下: function _print($array) { echo ("<pre>"); print_r($array); echo ("&...

利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法

准备工作: ① 首先要会使用ThinkPHP这个框架 ② 最好有些ajax的基础(可以去看下小飞的另外一篇博文:Ajax实时验证"用户名/邮箱等"是否已经存在) ③ 4个js文档(点此免...

推荐php模板技术[转]

站点结构 代码: 站点   ┗includes        ┗class.inc  ...

深入理解PHP中的global

一、实现原理 在PHP的函数中,global语法是比较常见的,大家一定都知道一旦在函数中global了某个外部变量后,这个变量就可以在这个函数中使用了,但是也有不少网友不知道这是一个什么...