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


Posted in PHP onJune 26, 2011
<?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 相关文章推荐
PHP与javascript对多项选择的处理
Oct 09 PHP
使用PHP socke 向指定页面提交数据
Jul 23 PHP
PHP简洁函数小结
Aug 12 PHP
PHP函数学习之PHP函数点评
Jul 05 PHP
PHP 获取文件路径(灵活应用__FILE__)
Feb 15 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
Apr 27 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
Apr 21 PHP
php实现登陆模块功能示例
Oct 20 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
Nov 30 PHP
Zend Framework校验器Zend_Validate用法详解
Dec 09 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
Sep 09 PHP
php设计模式 Strategy(策略模式)
Jun 26 #PHP
php设计模式 Observer(观察者模式)
Jun 26 #PHP
php设计模式 Singleton(单例模式)
Jun 26 #PHP
php设计模式 Command(命令模式)
Jun 26 #PHP
php设计模式 Template (模板模式)
Jun 26 #PHP
php设计模式 Proxy (代理模式)
Jun 26 #PHP
php设计模式 Composite (组合模式)
Jun 26 #PHP
You might like
sae使用smarty模板的方法
2013/12/17 PHP
ThinkPHP模板替换与系统常量及应用实例教程
2014/08/22 PHP
Yii框架弹出框功能示例
2017/01/07 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
PHP实现动态创建XML文档的方法
2018/03/30 PHP
JS图片无缝滚动(简单利于使用)
2013/06/17 Javascript
浅谈jQuery中replace()方法
2015/05/13 Javascript
关于input全选反选恶心的异常情况
2016/07/24 Javascript
jQuery基本筛选选择器实例代码
2017/02/06 Javascript
详解Angular2组件之间如何通信
2017/06/22 Javascript
angularjs中$http异步上传Excel文件方法
2018/02/23 Javascript
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
vue点击input弹出带搜索键盘并监听该元素的方法
2018/08/25 Javascript
vue做移动端适配最佳解决方案(亲测有效)
2018/09/04 Javascript
koa-router路由参数和前端路由的结合详解
2019/05/19 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
Electron整合React使用搭建开发环境的步骤详解
2020/06/07 Javascript
vue props 一次传多个值实例
2020/07/22 Javascript
微信小程序抽奖组件的使用步骤
2021/01/11 Javascript
复制粘贴功能的Python程序
2008/04/04 Python
用python写的一个wordpress的采集程序
2016/02/27 Python
利用Python实现在同一网络中的本地文件共享方法
2018/06/04 Python
opencv python 图像去噪的实现方法
2018/08/31 Python
Pycharm无法显示动态图片的解决方法
2018/10/28 Python
解决Python运行文件出现out of memory框的问题
2018/12/03 Python
Python如何实现转换URL详解
2019/07/02 Python
使用OpenCV实现仿射变换—平移功能
2019/08/29 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
Django更新models数据库结构步骤
2020/04/01 Python
浅析Python 字符编码与文件处理
2020/09/24 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
匈牙利最大的健身制造商和销售商:inSPORTline
2018/10/30 全球购物
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
数控加工专业毕业生自荐信
2013/09/27 职场文书
嘉宾邀请函
2015/01/31 职场文书
SQLServer常见数学函数梳理总结
2022/08/05 MySQL