我一直在解决 PHP 脚本。
我想根据一组指令计算结果。指令由关键字和数字组成,每行以空格分隔。从文件加载指令并将结果输出到屏幕。可以指定任意数量的指令。指令是运算符(加、除、减、乘)。指令将忽略数学优先级。最后一条指令应该是“apply”和一个数字(例如“apply 3”)。然后用该数字初始化计算器,并将前面的指令应用于该数字。
[Input]
add 2
multiply 3
apply 3
[Output]
15
这是我尝试过的,但我无法获得完成方法的逻辑
class Calculator {
public $result = 0;
public $queue = Array();
public parseString($text) {
// parse input string
$cmds = explode(" ", $text);
foreach($cmds as $cmd) {
$cmd = trim($cmd);
if(!$cmd) continue; // blank or space, ignoring
$this->queue[] = $cmd;
}
// lets process commands
$command = false;
foreach($this->queue as $index => $cmd) {
if(is_number($cmd)) {
// if it's number fire previous command if exists
if(!$command || !method_exists($this, $command)) {
throw new Exception("Unknown command $command");
}
$this->$command($index, $cmd);
}else{
$command = $cmd;
}
}
}
public function apply($index, $number) {
// manipulate $result, $queue, $number
}
public function add($index, $number) {
// manipulate $result, $queue, $number
}
public function substract($index, $number) {
// manipulate $result, $queue, $number
}
}
$calculator = new Calculator();
$calculator->parseString('...');
我如何调用或切换加、除、乘、减以及如何区分和触发应用词
任何形式的帮助将不胜感激。