<?php
$sum1=rand(1,9);
$sum2=rand(1,9);
$sum3=rand(0,3);
if($sum3==0) $sum3="+";
if($sum3==1) $sum3="-";
if($sum3==2) $sum3="*";
if($sum3==3) $sum3="/";
$s=$sum1.$sum3.$sum2;
echo $sum1.$sum3.$sum2."=",$s;?>怎么样才能计算它们的结果呢?

解决方案 »

  1.   

    写个方法就行了$sum1=rand(1,9);
    $sum2=rand(1,9);
    $sum3=rand(0,3);
    if($sum3==0) $sum3="+";
    if($sum3==1) $sum3="-"; 
    if($sum3==2) $sum3="*";
    if($sum3==3) $sum3="/";
    //$s=$sum1.$sum3.$sum2;
    $s=get_num($sum1,$sum3,$sum2);
    echo $sum1.$sum3.$sum2."=",$s;
    function get_num($a,$c,$b){
    $res=0;
    switch($c){
    case '+':
      $res=$a+$b;
      break;
    case '-':
      $res=$a-$b;
      break;
    case '*':
      $res=$a*$b;
      break;
    case '/':
      $res=$a/$b;
      break;
    }
    return $res;
    }这样应该很明白了吧?
      

  2.   


    <?php
    $sum1=rand(1,9);
    $sum2=rand(1,9);
    $sum3=rand(0,3);
    if($sum3==0) $sum3="+";
    if($sum3==1) $sum3="-"; 
    if($sum3==2) $sum3="*";
    if($sum3==3) $sum3="/";
    $code="\$s=\$sum1".$sum3."\$sum2;";
    echo $code.'<br/>';
    eval($code);
    echo $s.'<br/>';
    echo $sum1.$sum3.$sum2."=".$s;
    ?>
      

  3.   

    eval这个函数不太好弄,容易出错。所以写了个DEMO给你:<?php
    $sum1=rand(1,9);
    $sum2=rand(1,9);
    $sum3=rand(0,3);
    if($sum3==0) $sum3="+";
    if($sum3==1) $sum3="-";
    if($sum3==2) $sum3="*";
    if($sum3==3) $sum3="/";
    $s=$sum1.$sum3.$sum2;
    eval("\$result=$s;");echo "$s=$result\n";?>