2011-10-25 3 views
5

का उपयोग कर संख्यात्मक ऑपरेशन मेरे पास निम्न स्ट्रिंग है।स्ट्रिंग

$option = '+'; 
$value = '100'; 

मैं उपरोक्त पैरामीटर का उपयोग करके नया मान बनाना चाहता हूं।

पूर्व: - $newValue = 222 + 100;

मैं इसे ऊपर मानकों का प्रयोग करके कैसे कर सकते? निम्नलिखित के रूप में

$newValue = 222 $option $value; 
+0

* (टिप) * [ "स्वच्छ कोड टा lks - विरासत, बहुरूपता, और परीक्षण "] (https://www.youtube.com/watch?v=4F72VULWFvc) – Gordon

उत्तर

4
<?php 

$option = '+'; 
$value = '100'; 

eval("\$newValue=" . 222 . $option . $value . ';'); 
var_dump($newValue); 
+8

यह बहुत खतरनाक तरीका है! –

+1

यदि आप ** eval() ** फ़ंक्शन को कॉल करते हैं तो सुनिश्चित करें कि आपके पास ** $ विकल्प ** और ** $ value ** वेरिएबल केवल वे ऑपरेटर हैं जिन्हें आप समर्थन देना चाहते हैं और संख्याएं हैं। –

+0

हां। सच। लेकिन मैं पहले ही ऑपरेटर जानता हूं। –

5
$oldValue = 222; 
switch ($option) { 
    case '+': 
    $newValue = $oldValue + $value; 
    break; 
} 
+0

और आपके कोड में' $ value' कहां है? – user973254

+1

'$ newValue = $ oldValue + $ value;' – Sebastian

4
switch($option){ 
case '+': 
    $newValue = 222 + $value; 
    break; 

} 


echo $newValue; 

आशा है कि यह मदद करता है

10
function operate($a, $b, $opt){ 
    switch ($opt) { 
     case '+': 
      $ret = $a + $b; 
      break; 
     case '-': 
      $ret = $a - $b; 
      break; 
     case '*': 
      $ret = $a * $b; 
      break; 
     case '/': 
      $ret = $a/$b; 
      break; 
     default: 
      throw new Exception('Unsupported operation!'); 
    } 
    return $ret; 
} 

संपादित

$option = '+'; 
echo operate(222,100,$option); 
+2

यही कारण है कि आपका उत्तर बेहतर है और मेरा जवाब सिर्फ आलसी है :) और मानते हुए कि उपयोगकर्ता इसे प्राप्त करेगा, :) मैंने इसे आपके लिए थोड़ा सा संपादित किया है लेकिन इसके लिए +1 :) – Val

+1

मेरी इच्छा है कि मैं आपको 'नया अपवाद' फेंकने के लिए एक और +1 दे सकता हूं :) – Val

संबंधित मुद्दे