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 相关文章推荐
用PHPdig打造属于你自己的Google[图文教程]
Feb 14 PHP
PHP获取表单textarea数据中的换行问题
Sep 10 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
Apr 07 PHP
ThinkPHP3.1新特性之命名范围的使用
Jun 19 PHP
phpword插件导出word文件时中文乱码问题处理方案
Aug 19 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
Oct 27 PHP
php+xml结合Ajax实现点赞功能完整实例
Jan 30 PHP
PHP单元测试框架PHPUnit用法详解
Jan 23 PHP
php+ajax 文件上传代码实例
Mar 18 PHP
PHP实现网站应用微信登录功能详解
Apr 11 PHP
php中钩子(hook)的原理与简单应用demo示例
Sep 03 PHP
解决Laravel自定义类引入和命名空间的问题
Oct 15 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与jquery设置和读取cookies
2013/08/08 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
2015/05/12 PHP
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
tp5.1 实现setInc字段自动加1
2019/10/18 PHP
css图片自适应大小
2007/11/28 Javascript
JS判断数组中是否有重复值得三种实用方法
2013/08/16 Javascript
Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
2014/09/01 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
JavaScript实现数字数组按照倒序排列的方法
2015/04/06 Javascript
javascript中字体浮动效果的简单实例演示
2015/11/18 Javascript
jQuery简单获取键盘事件的方法
2016/01/22 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
2016/06/05 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
2016/12/14 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
使用JavaScript根据图片获取条形码的方法
2017/07/04 Javascript
基于Bootstrap实现城市三级联动
2017/11/23 Javascript
vue addRoutes实现动态权限路由菜单的示例
2018/05/15 Javascript
JS基于Location实现访问Url、重定向及刷新页面的方法分析
2018/12/03 Javascript
Vue入门学习笔记【基本概念、对象、过滤器、指令等】
2019/04/13 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
js实现计算器功能
2020/08/10 Javascript
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
Python使用bs4获取58同城城市分类的方法
2015/07/08 Python
Python实现TCP/IP协议下的端口转发及重定向示例
2016/06/14 Python
Django组件之cookie与session的使用方法
2019/01/10 Python
Python使用POP3和SMTP协议收发邮件的示例代码
2019/04/16 Python
python变量的存储原理详解
2019/07/10 Python
新手如何发布Python项目开源包过程详解
2019/07/11 Python
jupyter notebook的安装与使用详解
2020/05/18 Python
西班牙香水和化妆品购物网站:Arenal Perfumerías
2019/03/01 全球购物
2015年“世界无车日”活动方案
2015/05/06 职场文书
小学2016年第十八届推普周活动总结
2016/04/05 职场文书
Win11电源已接通但未充电怎么办?Win11电源已接通未充电的解决方法
2022/04/05 数码科技