2017-08-12 175 views
0

我剛剛完成了在PHP中的簡單的計算器鍛鍊,使用switch語句的值,來處理4個數學運算符函數(*,/,+, - )如何計算算術表達式

我想修改我的計算器,這樣我可以輸入表達式並計算結果。這是我修改後的代碼

<html> 
<head> 
<meta charset="utf-8"> 
<title>Calculator</title> 
</head> 
<body> 
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> 
<p>Value:<br/> 
<input type="text" name="first"></p> 
<button type="submit">Calculate</button> 
</form> 
</body> 
</html> 

<?php 
if ($_SERVER["REQUEST_METHOD"] == "POST") { 
// collect value of input field 
$a = $_REQUEST['first']; 

if (empty($a)) { 
    echo "<br>field is empty<br><br><br><br>"; 
} else { 
    echo $a; 
} 
} 
?> 

如何計算表達式的計算進入first表單字段?

+0

我試圖重新施放此問題,以更好地表達自己的意圖。我希望這是有幫助的。 – holdenweb

回答

0

那麼你的情況簡單地做到這一點

<?php 
if ($_SERVER["REQUEST_METHOD"] == "POST") { 
// collect value of input field 
$a = $_REQUEST['first']; 

if (empty($a)) { 
    echo "<br>field is empty<br><br><br><br>"; 
} else { 
    $a = eval('return '.$a.';'); 
    echo $a; 
} 
} 
?> 
+0

它只適用於兩個數字加法。任何指針回合如何修改它的更多操作類型? @codingsoul – emo

+0

else {$ a = eval('return'。$ a。';'); echo $ a; } – codingsoul

+0

不推薦解決方案雖然.. – codingsoul

0

我不能發表評論,我可以告訴你如何,但在這一刻,我可以給你完整的代碼答案:

您可以使用正則表達式,除了數字,除去一切,dots for numbers as12.16237831 and operations as +,-,/,*

比你可以通過一些操作者作爲做照此說來劃分字符串爲數組後:

2+2 into $anArray = [2,2]; 

並檢查其操作被發現之間,然後用它做你想要的。

+0

有沒有什麼方法可以返回被刪除的操作?所以計算可以繼續工作? @NoNameNeedToKnow – emo

+0

是的,與Ajax調用。或者簡單地說,沒有php的只有javasccript。 – NoNameNeedToKnow

+0

即時使用eval,而不是它的作品。感謝芽的評論:D我將學習AJAX後來:D @NoNameNeedToKnow – emo