作者 主題: +-×*的問題  (閱讀 3490 次)

0 會員 與 1 訪客 正在閱讀本文。

asukarei

  • 憂鬱的高中生
  • ***
  • 文章數: 92
    • 檢視個人資料
+-×*的問題
« 於: 2011-02-23 17:34 »
各位,
想請問一個問題. 我最近在做一個試驗. 主要是讓使用者自行輸入加減乘除. 然後輸入數字資料後,讓他去做計算.  舉例,表單上有3個輸入的地方. 我輸入 1 + 2, 然後將表單送出. 希望得到結果是3. 不過,在後端的運算我想要的是如何做成 轉換+這文字串成為運算+的功能.  不知道有無方法. 或者請提示一下有什麼function可以做此類型轉換即可.  謝謝. 補充一下,我不想用if去判斷字串為拿個符號.然後將2個欄位的數字作處理. 因為,如果我有更多欄位,if的語法將會更為複雜. 
« 上次編輯: 2011-02-23 17:40 由 asukarei »

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
回覆: +-×*的問題
« 回覆 #1 於: 2011-02-23 17:58 »
各位,
想請問一個問題. 我最近在做一個試驗. 主要是讓使用者自行輸入加減乘除. 然後輸入數字資料後,讓他去做計算.  舉例,表單上有3個輸入的地方. 我輸入 1 + 2, 然後將表單送出. 希望得到結果是3. 不過,在後端的運算我想要的是如何做成 轉換+這文字串成為運算+的功能.  不知道有無方法. 或者請提示一下有什麼function可以做此類型轉換即可.  謝謝. 補充一下,我不想用if去判斷字串為拿個符號.然後將2個欄位的數字作處理. 因為,如果我有更多欄位,if的語法將會更為複雜. 


『假設』輸入的字串都是正確的計算式,可以試試用 eval()

http://tw2.php.net/manual/en/function.eval.php

asukarei

  • 憂鬱的高中生
  • ***
  • 文章數: 92
    • 檢視個人資料
回覆: +-×*的問題
« 回覆 #2 於: 2011-02-23 18:25 »
感謝.

fillano

  • 鑽研的研究生
  • *****
  • 文章數: 526
    • 檢視個人資料
回覆: +-×*的問題
« 回覆 #3 於: 2011-02-23 18:25 »
或是自己寫parser...

詳細的做法,請google:
  • 中序轉後序
  • 後序求值
Sapere aude! Habe Mut, dich deines eigenen Verstandes zu bedienen! ist also der Wahlspruch der Aufklärung.

ah11851152n

  • 可愛的小學生
  • *
  • 文章數: 11
    • 檢視個人資料
回覆: +-×*的問題
« 回覆 #4 於: 2011-03-13 17:20 »
eval 真是好方法
我以前想到的方法是用 select 和正規化
ㄎㄎ

fattomhk

  • 可愛的小學生
  • *
  • 文章數: 6
    • 檢視個人資料
回覆: +-×*的問題
« 回覆 #5 於: 2011-03-24 16:16 »
eval 要注意安全的問題~
到時候你也要用回正規