2017-01-19 84 views
0

我试图变量的总和循环解析PHP框架,它的工作,但没有得到预期的结果,我希望1 + 1是2,但得到11劲歌其打印两个变量insted的做总和,总和变量

我的代码是

function amount() 
    { 

     $ip=getUserIP();   

    $crat_item= new ParseQuery("Cart"); 
    $crat_item->EqualTo("ipAddress", $ip); 
    $crat_item->each(function($object){ 
       GLOBAL $sum; 
        $total=0; 
        $a=$object->get('quantity'); 
        $prMSP=intval($a); 
        $fMSP=array('msp' => $prMSP); 

        $sum=array_sum($fMSP); 

        $total+=$sum; 

        echo "$total"; 

        });   
    } 

回答

1

你在循环重置$total变量。所以它的实际打印1 &然后再1,不11

修改它做了以下内容:

$total = 0; // define $total variable here.. 
$crat_item->each(function($object) { 
    GLOBAL $sum; 
    $a = $object->get('quantity'); 
    $prMSP = intval($a); 
    $fMSP = array('msp' => $prMSP); 

    $sum = array_sum($fMSP); 

    $total+=$sum; 
}); 

// now echo total 
echo "$total"; 

注意我们是如何移动的变量实例出来的功能?这是每次循环数据响应时“重新创建”的停止。与你的$totalecho相同。

+0

非常感谢你,但有ASLO微小的变化u需要补充的是总变量转换到GLOBAL underneeth –

+0

@PRAKASHKUMARPATEL这是你的代码,所以是的!但是一句忠告,避开'global'的,他们不会引起心痛的结束。 ;-P – Darren

0

这是对的Abobe问题的最终答案`函数量() {

 $ip=getUserIP(); 
     GLOBAL $total; 

     $total=0;  

    $crat_item= new ParseQuery("Cart"); 
    $crat_item->EqualTo("ipAddress", $ip); 
    $crat_item->each(function($object){ 
       GLOBAL $sum; 
       GLOBAL $total; //convert it in global here 
       // $total=0; 
       // GLOBAL $sum; 
      $a = $object->get('productMSP'); 
      $prMSP = intval($a); 
      $fMSP = array('msp' => $prMSP); 

      $sum = array_sum($fMSP); 

      $total+=$sum; 



        }); echo "$total";   
    }`