Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Duvida função de soma

Boa tarde!

Poderiam me explicar melhor a respeito da função de soma explicada nessa aula?

Tem o seguinte código dentro dela:

<?php 
    function somaArray($array) {
        $soma = 0;
        for($i, $i < sizeof($array), $i++)
        $soma = $soma + $array[$i]
    }
    return = $soma;
 ?>

Já que o valor da variável $soma foi passado " = 0 , o for teoricamente não ficaria dessa forma?

0 = 0 + $array[$i]

Outra dúvida é de onde vai sair algum valor desse $array e porque foi passado esse [$i].

Valeu!

7 respostas

Olá André.

De fato na primeira iteração do for teremos algo dessa forma:

$soma = 0 + $array[0]

Ao fim dessa iteração, temos que:

$soma = $array[0]

Por isso na segunda iteração ficamos com:

$soma = $array[0] + $array[1]

e assim por diante até percorrer o $array inteiro. Quando a sua segunda dúvida, o $array é recebido como parâmetro pela sua função somaArray, isso significa que quando você for usar essa função você deve mandar para ela o array correspondente. O $i é a variável de controle do for, ela é incrementada em 1 unidade a cada iteração, e enquanto a condição $i < sizeof($array) for válida ele repete o procedimento.

Espero ter ajudado.

Se não passar o [$i] a função não funcionará?

O $i não deve ser passado como parâmetro da função ele faz parte da sintaxe do for, que funciona assim:

for (inicio; condicao; incremento)

inicio corresponde a expressão que define o estado inicial das variáveis que você quer usar dentro do FOR. condicao é a expressão booleana a qual enquanto ela for verdadeira o que estiver dentro do FOR continuará se repetindo. incremento é o que você quer que seja feito ao fim de cada iteração.

No nosso caso inicio é $i = 0 condicao é $i < sizeof($array) e incremento é $i++.

Se você nao usar o $i no for precisa fazer de algum outro jeito para estabelecer a condição de parada dele. Claro que você pode dar outro nome para essa variável, por exemplo:

for ($indice; $indice < sizeof($array); $indice++)

O comando acima também funcionaria, só que ao invés de usar o $i você deve usar $indice.

Mas eu me refiro à esse [$i] que esta no código:

$soma = $soma + $array[$i]

André

0 = 0 + $array[$i]

Não irá incrementar a variável $soma.

Na realidade creio que isso irá gerar um erro.

solução!

Entendi. Então, você não pode tirar esse [$i], pois ele está aí representando um elemento do seu vetor.

Vamos supor que $array tem 3 elementos

$array[0] = 10

$array[1] = 20

$array[2] = 30

Se você quer a soma dele você tem que somar

$soma = $array[0] + $array[1] + $array[2]

Como o array do problema tem tamanho variável, precisamos fazer um FOR e nesse caso, o [$i] está identificando qual elemento do vetor eu quero somar, para que você não precise digitar na mão elemento por elemento, por isso, sem ele, o php não tem como saber o que você quer que some. Faz sentido?

Todo sentido! Obrigado pela atenção, Giovana!

Duvidas esclarecidas :)