$x = 0;
if ($a) $x += $a;
if ($b) $x += $b;
if ($c) $x += $c;
В приведенном примере получается, так что если переменные вызываются в порядке $a, $b и $c, то подсчет $x происходит так:
когда вызывается $a, то $x = 0 + $a;
когда вызывается $b, то $x = 0 + $a + $b;
когда вызывается $c, то $x = 0 + $a + $b + $c
но когда я применил этот пример к своему варинату, описанному выше, у меня получается так:
когда вызывается $a, то $x = 0 + $a;
когда вызывается $b, то $x = 0 + $b;
когда вызывается $c, то $x = 0 + $c;
ПОМОГИТЕ ПОЖАЛУЙСТА РАЗОБРАТЬСЯ, ПОЧЕМУ В МОЕМ ПРИМЕРЕ ЭТО ВАРИАНТ НЕ РАБОТАЕТ!
-~{}~ 23.06.05 19:48:
alexhemp подсакжите пожалуйста, как на моем варианте привести ваш пример.
Вот так я применил ваш варинат на своем примере, и когда я поставил floatval перед переменной, то $HTTP_SESSION_VARS['total_price'] получается всегда выводит результат равный 0, если то же самое сделать без floatval, то результат будет считаться правильно, но сервер будет выводит предупрждение, потомучто он не будет понимать, что если переменная не вызвана, то она должна быть равна 0.
Пожалуйста, помогите разобраться на моем варианте скрипта.
PHP:
@ $redox = $HTTP_GET_VARS['redox'];
@ $emt = $HTTP_GET_VARS['emt'];
@ $sealy = $HTTP_GET_VARS['sealy'];
if(isset($redox))
{
$HTTP_SESSION_VARS['total_price'] = calculate_price_redox(floatval($HTTP_SESSION_VARS['cart_redox'])) + calculate_price_emt(floatval($HTTP_SESSION_VARS['cart_emt'])) + calculate_price_sealy(floatval($HTTP_SESSION_VARS['cart_sealy']));
}
if(isset($emt))
{
$HTTP_SESSION_VARS['total_price'] = calculate_price_redox(floatval($HTTP_SESSION_VARS['cart_redox'])) + calculate_price_emt(floatval($HTTP_SESSION_VARS['cart_emt'])) + calculate_price_sealy(floatval($HTTP_SESSION_VARS['cart_sealy']));
}
if(isset($sealy))
{
$HTTP_SESSION_VARS['total_price'] = calculate_price_redox(floatval($HTTP_SESSION_VARS['cart_redox'])) + calculate_price_emt(floatval($HTTP_SESSION_VARS['cart_emt'])) + calculate_price_sealy(floatval($HTTP_SESSION_VARS['cart_sealy']));
}