复制代码代码如下:
/**
* インタプリタの例
*
* @create_date: 2010-01-04
*/
クラス式
{
関数インタープリタ($str)
{
return $str;
}
}
class ExpressionNum extends Expression
{
関数インタープリター($str)
{
switch($str)
{
case "0 ": "ゼロ" を返します。
ケース "1": "一" を返します。
ケース "2": "二" を返します。
ケース "3": "三" を返します。
ケース "4": "四" を返します。
ケース "5": "五" を返します。
ケース "6": "六" を返します。
case "7": return "七";
case "8": "8" を返します。
ケース "9": "九" を返します。
}
}
}
class ExpressionCharter extends Expression
{
function interpreter($str)
{
return strtoupper($str);
}
}
クラス インタプリタ
{
functionexecute($string)
{
$expression = null;
for($i = 0;$i
switch(true)
{
case is_numeric($temp): $expression = new ExpressionNum();壊す;
デフォルト: $expression = new ExpressionCharater();
}
echo $expression->interpreter($temp);
}
}
}
$obj = new Interpreter();
$obj->execute("12345abc");
?>