您好,欢迎访问一九零五行业门户网

实现单操作符简单公式解析

result; } private function setresult($result) { $this->result = $result; } private function getdataarray() { return $this->dataarray; } private function setdataarray($dataarray) { $this->dataarray = $dataarray; } private function getparams() { return $this->params; } public function setparams($params) { $this->params = $params; } private function add($data_1,$data_2){ return $data_1+$data_2; } private function minus($data_1,$data_2){ return $data_1-$data_2; } private function multiply($data_1,$data_2){ return $data_1*$data_2; } private function divide($data_1,$data_2){ return $data_1/$data_2; } private function stringtoarray(){ $params = $this->getparams(); $dataarray = explode( , $params); $this->setdataarray($dataarray); } private function getpos($array){ $pos = array(); $nums = sizeof($array); for ($i=0;$i if(!is_numeric($array[$i])){ $pos[] = $i; } } return $pos; } private function getdividepos(){ $array = $this->getdataarray();// ||$expressionarray $pos = array(); $nums = sizeof($array); for ($i=0;$i if($array[$i]==/){ $pos[] = $i; } } return $pos; } private function iszero(){ $dataarray = $this->getdataarray(); //print_r($dataarray); $array = $this->getdividepos(); // ||$devidpos //print_r($array); $nums = sizeof($array); echo
iszero nums:.$nums.
; if ($nums==0){ $this->setresult(1); }else{ for ($i=0;$i $key = $array[$i]+1; //$key = $i + 1; echo
key :$key
; //echo data:.$dataarray[$key]; $data = (int)($dataarray[$key]); echo data:.$data.
; if ($data==0){ $this->setresult(0); } else { $this->setresult($data); } } } } public function main(){ $this->stringtoarray(); $dataarray = $this->getdataarray(); //array(#data_1,/,#data_2); print_r($dataarray); $dividepos = $this->iszero(); $result = $this->getresult(); echo reslut:.$result.
; if($result==0){ return 0; }else{ $operatepos = $this->getpos($dataarray); $nums = sizeof($operatepos); for($i=0;$i $pos = $operatepos[$i]; $operate = $dataarray[$pos]; echo operate:.$operate.
; switch ($operate){ case +: $key1 = $pos - 1; $key2 = $pos + 1; $data_1 = $dataarray[$key1]; $data_2 = $dataarray[$key2]; $tempdata = $this->add($data_1, $data_2); return $tempdata; case -: $key1 = $pos - 1; $key2 = $pos + 1; $data_1 = $dataarray[$key1]; $data_2 = $dataarray[$key2]; $tempdata = $this->minus($data_1, $data_2); return $tempdata; case *: $key1 = $pos - 1; $key2 = $pos + 1; $data_1 = $dataarray[$key1]; $data_2 = $dataarray[$key2]; $tempdata = $this->multiply($data_1, $data_2); return $tempdata; case /: $key1 = $pos - 1; $key2 = $pos + 1; $data_1 = $dataarray[$key1]; $data_2 = $dataarray[$key2]; $tempdata = $this->divide($data_1, $data_2); return $tempdata; } } } } }$data_3 = 2 * 3;$compute = new operate();$compute ->setparams($data_3);echo result:.$compute->main();
复制代码
其它类似信息

推荐信息