2017-01-19 145 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";   
    }`