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动态图像的创建
Oct 09 PHP
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
Apr 24 PHP
php Rename 更改文件、文件夹名称
May 24 PHP
如何突破PHP程序员的技术瓶颈分析
Jul 17 PHP
PHP判断远程图片是否存在的几种方法
May 04 PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
Dec 15 PHP
typecho插件编写教程(二):写一个新插件
May 28 PHP
round robin权重轮循算法php实现代码
May 28 PHP
详解Yii2 定制表单输入字段的标签和样式
Jan 04 PHP
解决出现SoapFault (looks like we got no XML document)的问题
Jun 24 PHP
PHP清除缓存的几种方法总结
Sep 12 PHP
PHP程序守护进程化实现方法详解
Jul 16 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
搜索和替换文件或目录的一个好类--很实用
2006/10/09 PHP
解析php多线程下载远程多个文件
2013/06/25 PHP
浅谈php处理后端&amp;接口访问超时的解决方法
2016/10/29 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
JavaScript下通过的XMLHttpRequest发送请求的代码
2011/06/28 Javascript
页面回到顶部的三种实现(锚标记,js)
2012/10/01 Javascript
详解js闭包
2014/09/02 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
JavaScript 学习笔记之语句
2015/01/14 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
AngularJs定制样式插入到ueditor中的问题小结
2016/08/01 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
nodejs学习笔记之路由
2017/03/27 NodeJs
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
详解nodejs的express如何自动生成项目框架
2017/07/12 NodeJs
JavaScript中Hoisting详解 (变量提升与函数声明提升)
2017/08/18 Javascript
Angular2+如何去除url中的#号详解
2017/12/20 Javascript
vue使用中的内存泄漏【推荐】
2018/07/10 Javascript
vue中将html字符串转换成html后遇到的问题小结
2018/12/10 Javascript
JS JQuery获取data-*属性值方法解析
2020/09/01 jQuery
WebPack工具运行原理及入门教程
2020/12/02 Javascript
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
Python提取特定时间段内数据的方法实例
2019/04/01 Python
python ChainMap的使用和说明详解
2019/06/11 Python
python多任务之协程的使用详解
2019/08/26 Python
html5读取本地文件示例代码
2014/04/22 HTML / CSS
网络安全方面的面试题
2016/01/07 面试题
自动化专业职业生涯规划书范文
2014/01/16 职场文书
2014年小学校长工作总结
2014/12/08 职场文书
煤矿百日安全活动总结
2015/05/07 职场文书
2016年公司新年寄语
2015/08/17 职场文书
2016校本研修培训心得体会
2016/01/08 职场文书
创业计划书介绍
2019/04/24 职场文书
纯CSS实现hover图片pop-out弹出效果的实例代码
2021/04/16 HTML / CSS
Python学习之迭代器详解
2022/04/01 Python