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 adodb连接带密码access数据库实例,测试成功
May 14 PHP
php 取得瑞年与平年的天数的代码
Aug 10 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
Aug 07 PHP
codeigniter数据库操作函数汇总
Jun 12 PHP
PHP中file_exists函数不支持中文名的解决方法
Jul 26 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
Jul 30 PHP
php使用mysqli向数据库添加数据的方法
Mar 20 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
Dec 18 PHP
浅析PHP中的i++与++i的区别及效率
Jun 15 PHP
php常用字符函数实例小结
Dec 29 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 PHP
php实现文章评论系统
Feb 18 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
zend Framework中的Layout(模块化得布局)详解
2013/06/28 PHP
PHP开发框架kohana3 自定义路由设置示例
2014/07/14 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
php-fpm重启导致的程序执行中断问题详解
2019/04/29 PHP
详解PHP PDO简单教程
2019/05/28 PHP
laravel实现上传图片并在页面显示的例子
2019/10/14 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
2021/03/09 PHP
用JavaScript将从数据库中读取出来的日期型格式化为想要的类型。
2009/08/15 Javascript
js本身的局限性 别让javascript做太多事
2010/03/23 Javascript
javascript new fun的执行过程
2010/08/05 Javascript
jquery操作select元素和option的实例代码
2016/02/03 Javascript
ES6中非常实用的新特性介绍
2016/03/10 Javascript
JS控制伪元素的方法汇总
2016/04/06 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
jQuery实现简单倒计时功能的方法
2016/07/04 Javascript
利用JS实现数字增长
2016/07/28 Javascript
JavaScript简单下拉菜单特效
2016/09/13 Javascript
详解Python中logging日志模块在多进程环境下的使用
2016/12/26 Javascript
backbone简介_动力节点Java学院整理
2017/07/14 Javascript
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
2018/01/08 jQuery
JS的函数调用栈stack size的计算方法
2018/06/24 Javascript
jquery分页插件pagination使用教程
2018/10/23 jQuery
详解vue几种主动刷新的方法总结
2019/02/19 Javascript
关于vue组件事件属性穿透详解
2019/10/28 Javascript
JavaScript单线程和任务队列原理解析
2020/02/04 Javascript
解决vue项目router切换太慢问题
2020/07/19 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
2020/08/18 Javascript
Jquery 获取相同NAME 或者id删除行操作
2020/08/24 jQuery
[01:03]DOTA2新的征程 你的脚印值得踏上
2014/08/13 DOTA
[01:16:16]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第二场 1月8日
2021/03/11 DOTA
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
Java提供了哪些企业应用编程接口
2015/02/13 面试题
实现向右循环移位
2014/07/31 面试题
会计出纳岗位职责
2013/12/25 职场文书
境外导游求职信
2014/02/27 职场文书
客户答谢会致辞
2015/07/30 职场文书