2013-06-05 3 views
1

можно ли суммировать переменные статические значения в цикле while или for? У меня есть код и работаю над ним, но он суммирует переменные только один раз?как я могу суммировать две переменные для каждого цикла или while или для цикла

Вот мой код

session_start(); 

$length=count($_SESSION['product1']); 

$shipping2='280'; 
$shipping3='680'; 
$newshipping='0'; 
$newshipping1='0'; 
$i='0'; 

while($i= <$length) 
{ 
$newshipping=$shipping2+$shipping3; 
$newshipping1=$newshipping+$shipping2; 
} 

Для примера я хочу, как этот

$shipping2='280'; должна быть сумма с каждым результатом $newshipping1

`$newshipping1`= $shipping2='280' + $shipping3='680' = `$newshipping1`=960 
+ $shipping2='280'?? 

'$newshipping1`=960+ $shipping2=280+ $shipping2=280+ $shipping2=280 ..... 
when ever new product1 enter it should be add $shipping2=280 
in the result of `$newshipping1` 

Я закончил свой код здесь мой последний код

$length=count($_SESSION['product1']); 
$shipping2=280; 
$shipping3=680; 
$newshipping=0; 
for($i=0; $i <$length; $i++) { 
if($i == 1) { 
$newshipping = $shipping2+$shipping3; 
} else if($i <= 100) { 
$newshipping = $newshipping+$shipping2; 
} 
} 
+0

используют целые числа для математических операций: '$ а = 1;' вместо '$ а = '1';' – hek2mgl

+0

я действительно не понять, что вы хотите. но, похоже, вы ищете оператора + = ... $ newshipping1 + = $ shipping2; – steven

+0

@steven позволяет предположить, что мы имеем a и поэтому так: a = 680 и b = 280 и c = a + b теперь c = 960 Теперь новый товар входит в корзину покупок, а затем c = 960 + 280 снова и снова, когда когда-либо новый продукт, внесенный в корзину? – user2419956

ответ

0

Ваша логика кажется немного запутанным, однако вы можете суммировать несколько чисел. Если вы пытаетесь выяснить окончательную сумму нескольких итераций, вы должны:

$shipping_one = 680; 
$shipping_two = 260; 
$shipping_three = 0; 
$finalShipping = array(); 

while($i= <$length) 
{ 
    $finalShipping[] = $shipping_one + $shipping_two + $shipping_three; 
} 

$finalTotal = array_sum($finalShipping); 

Если вы можете уточнить ваш вопрос, я могу уточнить свой ответ.

0

это будет ((680) + (4 * 280)), как вы объяснили в своем последнем комментарии.

$length = 1; 
echo "Test with $length : ".getShippingTotal($length)." <br />"; 

$length = 2; 
echo "Test with $length : ".getShippingTotal($length)." <br />"; 

$length = 3; 
echo "Test with $length : ".getShippingTotal($length)." <br />"; 

$length = 4; 
echo "Test with $length : ".getShippingTotal($length)." <br />"; 

$length = 5; 
echo "Test with $length : ".getShippingTotal($length)." <br />"; 

function getShippingTotal($length) { 

    $shipping2=280; 
    $shipping3=680; 
    $total = 0; 

    for($i=0; $i < $length; $i++) { 
     if($i == 0) { 
      $total += $shipping2+$shipping3; 
     } else { 
      $total += $shipping2; 
     } 
    } 
    return $total; 
} 

Я испытал его, и он дал мне:

Test with 1 : 960 
Test with 2 : 1240 
Test with 3 : 1520 
Test with 4 : 1800 
Test with 5 : 2080 
+0

Позвольте мне попробовать, но $ length = count ($ _ SESSION ['product1']); – user2419956

+0

Неустранимая ошибка: вызов функции undefined gethippingtotal()? – user2419956

+0

Вы скопировали код в новый файл test.php? Ive протестирован, и он работает. Неопределенная функция? скопировали ли вы эту функцию? не в класс! – steven

Смежные вопросы