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 相关文章推荐
打造计数器DIY三步曲(上)
Oct 09 PHP
php Undefined index的问题
Jun 01 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
Dec 11 PHP
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
Jul 03 PHP
探寻PHP脚本不报错的原因
Jun 12 PHP
PHP实现删除非站内外部链接实例代码
Jun 17 PHP
php上传文件问题汇总
Jan 30 PHP
刷新PHP缓冲区为你的站点加速
Oct 10 PHP
ucenter中词语过滤原理分析
Jul 13 PHP
PHP读取大文件的几种方法介绍
Oct 27 PHP
PHP终止脚本运行三种实现方法详解
Sep 01 PHP
PHP如何防止用户重复提交表单
Dec 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
用PHP实现图象锐化代码
2007/06/14 PHP
php 模拟POST提交的2种方法详解
2013/06/17 PHP
php汉字转拼音的示例
2014/02/27 PHP
php正则匹配html中带class的div并选取其中内容的方法
2015/01/13 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
2015/03/12 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
js中数组排序sort方法的原理分析
2014/11/20 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
2017/03/07 Javascript
JS实现根据密码长度显示安全条功能
2017/03/08 Javascript
详解微信小程序 template添加绑定事件
2017/06/23 Javascript
iview Upload组件多个文件上传的示例代码
2018/09/30 Javascript
优雅的在React项目中使用Redux的方法
2018/11/10 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
python sqlobject(mysql)中文乱码解决方法
2008/11/14 Python
Python多进程编程技术实例分析
2014/09/16 Python
Python机器学习之K-Means聚类实现详解
2018/02/22 Python
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
CentOS 7下安装Python3.6 及遇到的问题小结
2018/11/08 Python
python读取当前目录下的CSV文件数据
2020/03/11 Python
python检查目录文件权限并修改目录文件权限的操作
2020/03/11 Python
为什么说python更适合树莓派编程
2020/07/20 Python
python中用ctypes模拟点击的实例讲解
2020/11/26 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
Ooni英国官网:披萨烤箱
2020/05/31 全球购物
给定一个时间点,希望得到其他时间点
2013/11/07 面试题
超级搞笑检讨书
2014/01/15 职场文书
春节活动策划方案
2014/01/24 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
2015年工程部工作总结
2015/04/30 职场文书
施工安全保证书
2015/05/09 职场文书
小学家长意见怎么写
2015/06/03 职场文书
导游词之天下银坑景区
2019/11/21 职场文书
HTML+CSS实现导航条下拉菜单的示例代码
2021/08/02 HTML / CSS
win11无法登录onedrive错误代码0x8004def7怎么办 ?
2022/04/05 数码科技