首页 » PHP教程 » phpexpression技巧_PHP设计模式之解释器模式

phpexpression技巧_PHP设计模式之解释器模式

访客 2024-11-18 0

扫一扫用手机浏览

文章目录 [+]

概述:给定一种措辞,定义他的文法的一种表示,并定义一个阐明器,该阐明器利用该表示来阐明措辞中句子

阐明器模式的优缺陷:

phpexpression技巧_PHP设计模式之解释器模式

阐明器是一个大略的语法剖析工具,它最显著的优点便是扩展性,修正语法规则只须要修正相应的非闭幕符就可以了,若扩展语法,只须要增加非闭幕符类就可以了。
但是,阐明器模式会引起类的膨胀,每个语法都须要产生一个非闭幕符表达式,语法规则比较繁芜时,就可能产生大量的类文件,为掩护带来非常多的麻烦。
同时,由于采取递归调用方法,每个非闭幕符表达式只关心与自己干系的表达式,每个表达式须要知道终极的结果,必须通过递归办法,无论是面向工具的措辞还是面向过程的措辞,递归都是一个不推举的办法。
由于利用了大量的循环和递归,效率是一个不容忽略的问题。
特殊是用于阐明一个解析繁芜、冗长的语法时,效率是难以忍受的。

phpexpression技巧_PHP设计模式之解释器模式
(图片来自网络侵删)

<?php

class Expression

{

function interpreter($str)

{

return $str;

}

}

<?php

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 \"大众九\"大众;

}

}

}

<?php

class ExpressionCharater extends Expression

{

function interpreter($str)

{

return strtoupper($str);

}

}

<?php

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(); break;

}

echo $expression->interpreter($temp);

}

}

}

<?php

/

阐明器模式

/

public function actionExpression(){

Yii::import('ext.expression.');

$obj = new Interpreter();

$obj->execute(\公众12345abc\"大众);

}

标签:

相关文章

Macc语言,革新编程教育的未来之路

随着科技的飞速发展,编程教育逐渐成为全球教育领域关注的焦点。在众多编程语言中,Macc语言以其独特的优势,成为革新编程教育的未来之...

PHP教程 2024-12-26 阅读0 评论0

Linux操作系统,开源世界的璀璨明珠

Linux操作系统,作为开源世界的璀璨明珠,以其卓越的性能、丰富的功能以及强大的稳定性,赢得了全球众多用户的喜爱。本文将从Linu...

PHP教程 2024-12-26 阅读0 评论0

邯郸IT舞蹈,创新与活力的完美融合

随着信息技术的飞速发展,我国IT产业正迎来前所未有的繁荣。在这个大背景下,邯郸市凭借其独特的地理位置、丰富的文化资源,孕育出一种独...

PHP教程 2024-12-26 阅读0 评论0

酒店IT特点与智慧酒店发展趋势

随着科技的飞速发展,信息技术已经渗透到各行各业,酒店业也不例外。酒店IT特点在近年来愈发显著,不仅提高了酒店的管理效率,还为客人带...

PHP教程 2024-12-26 阅读0 评论0