Portal IDEA

PHP

PHP

 

MÓDULO 2 — Repetição, arrays e funções (o “motor” do PHP)

Aula 4 — Laços (for, while, foreach) sem sofrimento

 

A Aula 4 é o momento em que você para de “mandar o PHP fazer uma coisa uma vez” e começa a ensinar o PHP a repetir tarefas do jeito certo. Isso parece simples, mas é uma das habilidades que mais economizam tempo e evitam código duplicado. Afinal, muita coisa no mundo real é repetição: listar produtos, exibir alunos de uma turma, montar uma tabela de preços, gerar números de pedido, imprimir boletos, calcular parcelas… se você tentar fazer tudo na mão, linha por linha, seu código cresce rápido, fica cansativo de manter e vira uma bagunça. É aqui que entram os laços de repetição, também chamados de loops.

Antes de ver os tipos de laço, vale entender a ideia central: um loop é uma estrutura que executa um bloco de código várias vezes, seguindo uma regra. Essa regra pode ser “repita 10 vezes”, “repita enquanto isso for verdadeiro” ou “para cada item dessa lista, faça algo”. E, quando você entende esse conceito, muita coisa fica mais natural: você não está “repetindo por repetir”, você está automatizando um padrão. Programar bem tem muito a ver com reconhecer padrões e ensinar a máquina a executá-los com consistência.

O primeiro laço que costuma aparecer é o for, que é como um contador organizado. Ele é perfeito quando você já sabe quantas vezes quer repetir algo. Por exemplo: “mostre os números de 1 a 10”, “faça a tabuada do 7”, “crie 12 parcelas”, “gere 5 tentativas”. O for tem uma estrutura que parece um mini roteiro: você define por onde começa, até onde vai e de quanto em quanto ele anda. E, mesmo que no início pareça estranho, a lógica é bem humana: “comece em 1, enquanto for menor ou igual a 10, some 1”. Uma vez que isso entra na cabeça, você começa a enxergar for em todo lugar.

Na prática, o exemplo da tabuada é ótimo porque dá para visualizar o resultado sem esforço. Você escolhe um número (por exemplo, 7) e pede para o for multiplicar esse número por 1, 2, 3… até 10. O que era um trabalho repetitivo vira um bloco curto e claro. E existe uma lição pedagógica muito boa aqui: você aprende a confiar em uma estrutura que “faz sozinha” a parte chata. Ao mesmo tempo, aprende que o resultado depende de você definir bem as regras de início, fim e passo. Se o loop começa errado ou termina errado, ele não vai adivinhar — ele vai obedecer.

Depois do for, normalmente entra o while, que

é uma repetição guiada por condição. Ele é ideal quando você não sabe exatamente quantas vezes vai repetir, mas sabe qual é o critério para parar. É como dizer: “enquanto houver saldo, continue descontando”, “enquanto o usuário não acertar a senha, peça de novo”, “enquanto a fila não estiver vazia, processe o próximo”. O while é poderoso, mas também exige atenção, porque é fácil cair em um erro clássico: o loop que nunca termina. Isso acontece quando a condição continua verdadeira para sempre. Por isso, o while pede um cuidado didático: sempre perguntar “o que, dentro do laço, vai mudar para que ele pare?” Se nada muda, a repetição fica infinita e o programa trava ou se comporta de forma inesperada.

Um jeito simples de entender isso é imaginar uma porta automática que só fecha quando o sensor para de detectar alguém. Se o sensor nunca “desliga”, a porta nunca fecha. No while, é igual: se a variável que controla a condição não muda, você fica preso no loop. Então, desde cedo, é bom criar o hábito de garantir que a condição de parada está bem desenhada. Isso é uma das marcas de maturidade no começo da programação: não é só fazer funcionar, é fazer funcionar sem riscos escondidos.

E aí chega o laço que costuma ser o favorito de quem começa a trabalhar com listas: o foreach. A lógica do foreach é muito próxima da linguagem humana: “para cada item desta lista, faça tal coisa”. Ele é perfeito quando você tem um conjunto de dados e quer percorrer um por um. Mesmo antes de mergulhar fundo em arrays, dá para apresentar a ideia de lista: imagine que você tem nomes de alunos, ou produtos, ou categorias. Em vez de acessar manualmente “o primeiro, o segundo, o terceiro…”, o foreach te dá uma forma limpa e segura de caminhar por tudo. Ele ajuda a reduzir erros, porque você não precisa controlar índices ou contadores o tempo inteiro; você só se concentra no que quer fazer com cada item.

Um ponto importante dessa aula é perceber que loops não servem apenas para “mostrar números”. Eles servem para construir resultados. Você pode somar valores, montar textos, gerar blocos de HTML, contar ocorrências, filtrar dados, preparar relatórios. Por exemplo, ao listar produtos, você pode ir acumulando um total; ao listar notas, pode calcular a média; ao percorrer uma lista de pedidos, pode separar os que estão “pendentes” dos “pagos”. Ou seja, o laço é uma espécie de esteira: cada item passa por você e você decide o que fazer com ele.

É comum, nessa aula, aparecer outra

habilidade essencial: aprender a ler loops com calma. Muitas dificuldades no início não são porque o aluno “não sabe PHP”, e sim porque ele se perde no fluxo: “em que momento essa variável muda?” “quantas vezes isso roda?” “por que está repetindo 11 vezes e não 10?” Por isso, é muito didático incentivar o aluno a testar com números pequenos e imprimir resultados intermediários. Se você imprime o valor do contador a cada volta, seu cérebro acompanha o passo a passo e o loop deixa de ser um “mistério”.

No final da Aula 4, o aluno começa a perceber uma mudança de postura: ele deixa de programar só com linhas únicas e passa a programar com estruturas que automatizam padrões. Isso é um salto importante. E não é exagero dizer que loops são um dos fundamentos que sustentam praticamente qualquer sistema. A partir daqui você está preparado para lidar melhor com listas (arrays), catálogos, relatórios e, mais adiante, dados vindos de formulários e bancos de dados. A repetição, quando bem usada, não é “fazer mais do mesmo”; é tornar o código mais enxuto, mais claro e mais inteligente.

Referências bibliográficas

ALMEIDA, Marco Antonio. PHP: Programando com Orientação a Objetos. São Paulo: Novatec Editora, 2016.

NIEDERAUER, Juliano. Desenvolvendo Websites com PHP. São Paulo: Novatec Editora, 2019.

WELLING, Luke; THOMSON, Laura. Desenvolvimento Web com PHP e MySQL. Rio de Janeiro: Alta Books, 2018.

SCHULTZ, Alexandre; SCHULTZ, Fábio. Lógica de Programação e Algoritmos. São Paulo: Bookman, 2019.


Aula 5 — Arrays: guardando e acessando listas do mundo real

 

A Aula 5 é quando o PHP começa a “organizar a casa”. Até agora, você trabalhou com variáveis que guardam uma informação por vez: um nome, um preço, uma idade. Mas a vida real raramente vem em dose única. Normalmente, a gente lida com listas: vários produtos, vários alunos, vários pedidos, vários valores. E é aqui que entram os arrays, que são, de forma bem simples, um jeito de guardar muitos dados dentro de uma única estrutura. Se variáveis são caixinhas individuais, o array é como uma gaveta com divisórias — você coloca vários itens ali e depois encontra cada um quando precisa.

No começo, o array mais fácil de entender é o array “simples”, também chamado de indexado. Ele funciona como uma lista numerada: item 0, item 1, item 2… Isso pode estranhar, porque a contagem começa em zero, mas logo vira parte do jogo. Se você tem uma lista de frutas, por exemplo, você pode guardar tudo em um array e acessar cada

posição. É um passo enorme, porque você deixa de criar variáveis soltas como $produto1, $produto2, $produto3 e passa a ter uma coleção organizada. Isso melhora o código, evita repetição e facilita alterações: adicionar um novo item vira uma linha, e não uma “reforma” no arquivo inteiro.

Depois que o aluno entende a ideia de lista, começa a fazer sentido o foreach da aula anterior. O foreach é quase o “melhor amigo” dos arrays: você pega uma lista e percorre item por item com naturalidade. E isso abre um caminho muito prático: em vez de escrever vários echo para mostrar cada coisa, você cria um array e manda o PHP exibir tudo em um laço. É como trocar o trabalho manual por uma linha de produção. E, pedagogicamente, isso dá uma sensação boa: com pouco código, você consegue resultados maiores e mais profissionais.

A Aula 5 também apresenta um tipo de array que deixa tudo ainda mais próximo do mundo real: o array associativo. Em vez de usar apenas números como “chave” (0, 1, 2), você usa nomes. É como transformar a gaveta em um fichário, onde cada ficha tem um rótulo. Por exemplo, um produto pode ter “nome” e “preço”. Em vez de guardar isso como duas listas separadas, você pode usar chaves como nome e preco. Esse formato é ótimo porque o código fica mais legível: quando você lê algo como $produto['preco'], você entende imediatamente o que está sendo acessado. Ele não está pegando “o segundo item”; ele está pegando “o preço”.

E é aqui que aparece um conceito que, sem complicar, já é muito útil: representar um “registro” com array associativo. Em termos simples, dá para pensar que cada produto é um pequeno conjunto de informações relacionadas. E quando você junta vários desses registros em uma lista, você tem algo que se parece com um catálogo. Esse tipo de estrutura é extremamente comum em sistemas reais, porque é uma forma de organizar dados antes mesmo de ter um banco de dados. É como montar uma planilha dentro do PHP: cada linha é um produto, e cada coluna é uma informação dele.

Um ponto didático importante dessa aula é aprender a diferença entre criar, acessar e alterar dados no array. Criar é colocar os itens; acessar é pegar o que já existe; alterar é atualizar valores. Isso parece óbvio, mas evita muitos erros. Por exemplo, é comum o aluno tentar acessar uma chave que não existe e ficar confuso quando dá aviso ou quando o resultado vem vazio. Então, faz parte do aprendizado criar o hábito de conferir se o índice ou a chave está certa, e entender que

arrays dependem muito de consistência: se você escreveu 'preco' em um lugar e 'preço' em outro, para o PHP são duas chaves diferentes. Esse tipo de detalhe parece pequeno, mas é um dos campeões de erros em projetos iniciantes.

Outra ferramenta que entra com força nesta aula é o count(), que diz quantos itens existem dentro de um array. Isso é útil de um jeito muito real: às vezes você quer mostrar “Você tem 3 itens no carrinho”, ou quer rodar um laço “até acabar a lista”, ou quer validar se a lista veio vazia. Em vez de adivinhar, você pergunta ao PHP: “quantos itens têm aqui?”. Esse é um exemplo bonito de como programação é, muitas vezes, fazer perguntas certas ao computador.

Conforme você trabalha com arrays, também surge uma noção de cuidado com apresentação. Ao exibir uma lista de produtos e preços, por exemplo, não basta “jogar na tela”. É interessante formatar, deixar organizado, separar com linhas, talvez usar um pouco de HTML básico para ficar legível. E isso conversa com uma habilidade essencial do desenvolvimento web: você não está só calculando coisas — você está comunicando informações para alguém. E a organização do array ajuda justamente nisso: facilita exibir de forma limpa e padronizada.

Um exercício bem clássico e muito útil nesta aula é montar um pequeno catálogo com uns cinco produtos, cada um com nome e preço, e depois exibir todos usando foreach. Nesse momento, a ficha costuma cair: você percebe que arrays são o caminho natural para trabalhar com “vários dados” sem transformar o código numa colcha de retalhos. E, mais importante, você começa a enxergar o início de estruturas que vão crescer depois: carrinho de compras, lista de usuários, tabela de notas, agenda de contatos. Tudo isso, lá na frente, vai ser alimentado por banco de dados — mas, antes de chegar no banco, o array é o laboratório perfeito para aprender.

No final da Aula 5, a grande conquista é entender que arrays não são “um assunto a mais”, e sim uma forma de pensar melhor. Eles te ajudam a organizar dados, percorrer listas com facilidade e construir saídas mais completas. É como sair de uma mesa cheia de papéis soltos e colocar tudo em pastas com etiquetas: você encontra mais rápido, erra menos e consegue aumentar o sistema sem se perder. Quando o aluno domina arrays simples e associativos, ele ganha uma base sólida para avançar para funções, formulários e, em breve, para estruturas mais próximas de aplicações reais.

Referências bibliográficas

ALMEIDA, Marco

Antonio. PHP: Programando com Orientação a Objetos. São Paulo: Novatec Editora, 2016.

NIEDERAUER, Juliano. Desenvolvendo Websites com PHP. São Paulo: Novatec Editora, 2019.

WELLING, Luke; THOMSON, Laura. Desenvolvimento Web com PHP e MySQL. Rio de Janeiro: Alta Books, 2018.

SCHULTZ, Alexandre; SCHULTZ, Fábio. Lógica de Programação e Algoritmos. São Paulo: Bookman, 2019.


Aula 6 — Funções: como reaproveitar código e organizar melhor

 

A Aula 6 é o momento em que o aluno começa a sentir que está programando “com mais elegância”. Até aqui, você já aprendeu a lidar com variáveis, condições, laços e arrays. Só que, conforme os exercícios ficam mais completos, surge um problema bem comum: o código começa a repetir pedaços parecidos. Você calcula total em um lugar, formata preço em outro, valida texto em outro… e, quando percebe, está copiando e colando trechos. Funciona? Até funciona. Mas vira bagunça rápido. É aqui que entram as funções, que são como “pequenas ferramentas” que você cria para usar sempre que precisar.

Uma função é, em essência, um bloco de código com nome. Você dá um nome que faz sentido (por exemplo, formatarMoeda ou calcularTotal) e guarda ali dentro uma lógica específica. Quando precisar daquela lógica de novo, em vez de reescrever tudo, você chama a função. Isso deixa o código mais curto, mais fácil de ler e muito mais simples de manter. É como cozinhar com receitas prontas: você não precisa reinventar o passo a passo toda vez que fizer o mesmo prato.

Um ponto didático importante é entender que função não é “complicação”; é organização. Ela ajuda a separar responsabilidades: uma parte do sistema calcula, outra valida, outra formata. E isso é uma forma de pensar que acompanha o aluno em qualquer linguagem. Quando você aprende a criar funções, você aprende a construir código que cresce sem virar um monstro. E mesmo em projetos pequenos, a diferença é enorme: você consegue olhar para o arquivo e entender rapidamente o que está acontecendo, porque as funções viram “títulos” claros do que cada etapa faz.

Para uma função ser realmente útil, ela costuma receber parâmetros, que são valores que você passa para ela trabalhar. É como uma calculadora: a calculadora é a mesma, mas você digita números diferentes. Em PHP, os parâmetros entram entre parênteses. Por exemplo, uma função calcularDesconto($valor, $percentual) pode receber dois valores e devolver o resultado do desconto. O bonito aqui é perceber que a função fica reutilizável: você

pode receber dois valores e devolver o resultado do desconto. O bonito aqui é perceber que a função fica reutilizável: você pode usar com R$ 100 e 10%, ou com R$ 250 e 15%, sem mudar a lógica interna.

E aí entra um conceito que dá um salto de entendimento: o return. Quando uma função “retorna” algo, ela devolve um resultado para quem a chamou. Isso é diferente de dar echo dentro da função. Muitas vezes, no começo, o aluno tenta imprimir tudo e se confunde. Mas é mais saudável aprender a separar: a função calcula e devolve; quem chama decide se vai mostrar na tela, guardar em variável, comparar numa condição, ou usar em outra conta. Essa separação deixa seu código mais flexível e evita aquela sensação de que está tudo misturado.

Um exemplo bem real para esta aula é a formatação de valores. Em projetos de verdade, preço aparece o tempo inteiro. Se você formata “na mão” toda vez, além de repetitivo, você pode formatar de jeitos diferentes e deixar a interface inconsistente. Com uma função formatarMoeda($valor), você resolve isso. Sempre que for exibir um preço, chama a função. E pronto: padrão estabelecido. Esse tipo de função pequena parece simples, mas é o que dá “cara profissional” ao código e economiza muito tempo.

Outro uso muito comum de funções é validação. Imagine que você precisa verificar se um texto está vazio, ou se um número é válido, ou se um campo foi preenchido. Você pode criar uma função como estaVazio($texto) e usá-la em diferentes partes do sistema. Isso não só reduz repetição, como também reduz erros, porque a regra fica centralizada. Se amanhã você quiser melhorar a validação (por exemplo, considerar espaços em branco), você ajusta em um lugar só e o resto do sistema já se beneficia.

Nesta aula, também é importante reforçar a ideia de que funções devem ser pequenas e com um propósito claro. Existe uma tentação natural de criar uma função enorme que faz tudo: calcula, valida, imprime, decide frete, monta HTML… e aí você volta para o mesmo problema de antes, só que “embrulhado”. Uma boa função é como uma ferramenta específica: martelo bate prego, chave de fenda aperta parafuso. Se você tenta criar uma ferramenta que faz tudo, ela não faz nada direito. Então o aluno aprende a perguntar: “qual é a única responsabilidade desta função?” Se a resposta for longa demais, talvez seja hora de dividir.

Um detalhe que ajuda muito a aprender funções é perceber que elas criam uma espécie de “mundo” próprio: variáveis declaradas dentro da função, em

detalhe que ajuda muito a aprender funções é perceber que elas criam uma espécie de “mundo” próprio: variáveis declaradas dentro da função, em geral, não existem fora dela. Isso pode confundir no começo, mas é uma proteção útil: evita que uma parte do código atrapalhe outra. Quando você precisa que algo venha de fora, você passa por parâmetro. Quando precisa devolver algo, você usa return. Esse fluxo deixa o código mais previsível. E previsibilidade, na prática, é o que torna um sistema confiável.

Ao final da Aula 6, o aluno passa a ter uma nova capacidade: transformar lógica repetida em peças reutilizáveis. Isso prepara o terreno para projetos mais completos, porque agora você consegue montar um “kit” de funções: calcular total, aplicar desconto, formatar valores, validar dados… E quando essas peças estão prontas, montar uma página com orçamento ou carrinho fica muito mais leve. Você deixa de lutar contra o código e começa a construir com ele. 

Em resumo, funções são o passo que separa “código que funciona” de “código que funciona e dá gosto de manter”. Elas ajudam a organizar, reaproveitar e tornar o projeto mais claro. E, para quem está começando, essa é uma conquista enorme: você começa a programar com mais tranquilidade, porque sabe que não precisa repetir tudo, nem carregar o arquivo inteiro nas costas. Você cria uma função, confia nela e segue adiante.

Referências bibliográficas

ALMEIDA, Marco Antonio. PHP: Programando com Orientação a Objetos. São Paulo: Novatec Editora, 2016.

NIEDERAUER, Juliano. Desenvolvendo Websites com PHP. São Paulo: Novatec Editora, 2019.

WELLING, Luke; THOMSON, Laura. Desenvolvimento Web com PHP e MySQL. Rio de Janeiro: Alta Books, 2018.

SCHULTZ, Alexandre; SCHULTZ, Fábio. Lógica de Programação e Algoritmos. São Paulo: Bookman, 2019.


Estudo de caso do Módulo 2: “O Carrinho do Seu Zé — a lista que quebrou o site (e como consertar)”

 

O Seu Zé tem uma lojinha online bem simples, feita “no improviso” para testar vendas no bairro. Ele não quer nada sofisticado por enquanto: só uma página que mostre os produtos do carrinho, some o total e aplique um desconto quando fizer sentido. Parece tranquilo… até começar a crescer.

O aluno do curso (responsável pelo código) já domina o básico do Módulo 1. Agora, com o Módulo 2, ele aprende a lidar com repetição (Aula 4), arrays (Aula 5) e funções (Aula 6). Só que, no caminho, aparecem os erros clássicos — aqueles que fazem o sistema “funcionar às vezes” e falhar do nada.

Vamos acompanhar o drama e, principalmente, as soluções.

Contexto do problema

O carrinho precisa fazer quatro coisas:

1.     Exibir a lista de itens

2.     Calcular o total

3.     Aplicar desconto de 10% se total > 200

4.     Mostrar tudo formatado e organizado

A lógica é simples. O desafio é não se enrolar no código.

Cena 1 — “Por que ele pulou um produto?” (erros de loop)

O aluno usa for para percorrer uma lista de produtos. Só que um item sempre some, ou aparece um “índice inexistente” no final.

Erro comum 1: laço indo além do tamanho do array

  • Exemplo mental do erro: usar <= quando deveria usar <.

Por que acontece

  • Se o array tem 3 itens, os índices válidos são 0, 1, 2.
  • Quando o loop tenta acessar 3, dá problema.

Como evitar

  • Sempre usar o tamanho do array com count() e lembrar que índice começa em 0:
    • “vai de 0 até menor que count”.

Erro comum 2: contador começando errado

  • Começar em 1 faz você pular o item 0.

Como evitar

  • Em arrays indexados, quase sempre comece em 0.

Atalho seguro

  • Para listas, prefira foreach quando possível. Ele reduz esse tipo de erro porque você não controla índice manualmente.

Cena 2 — “Meu total tá dando errado… e quanto mais itens, pior” (erros ao somar)

O aluno tenta somar os preços, mas o total vira um número absurdo ou vira texto.

Erro comum 1: concatenar em vez de somar

  • Em vez de somar, ele junta como texto sem perceber.

Como evitar

  • Garantir que o cálculo usa operadores matemáticos e que o total começa como número:
    • total começa em 0
    • vai acumulando com + (não com .)

Erro comum 2: não resetar o total

  • O aluno calcula o total em uma parte do código, depois recalcula em outra sem zerar.
  • Resultado: dobra, triplica, vira bola de neve.

Como evitar

  • Sempre inicializar o acumulador antes do loop.
  • Se for calcular em função, a variável deve nascer dentro da função.

Erro comum 3: preço em formato errado

  • “19,90” como string é um clássico no Brasil.

Como evitar

  • Trabalhar com ponto em decimal no código (19.90) e formatar só na hora de exibir.

Cena 3 — “Undefined index / Undefined array key” (erros de array e chaves)

O aluno monta produtos como array associativo, mas do nada aparece erro dizendo que a chave não existe.

Erros comuns

1.     Inconsistência de chaves: preco num item e preço em outro

2.     Digitação diferente: nomeProduto vs nome_produto

3.     Acessar uma chave sem garantir que ela existe

Como evitar

  • Definir um
  • “padrão” de chaves e manter sempre igual (ex.: nome, preco, qtd)
  • Revisar e padronizar antes de sair usando no loop
  • Em situações reais, checar com isset() antes de acessar

Mentalidade útil

  • Array associativo é como ficha cadastral: se você escrever o “campo” com nome diferente, o sistema entende como outro campo.

Cena 4 — “Meu foreach tá estranho… aparece ‘Array’ na tela” (exibição errada)

O aluno tenta imprimir o array inteiro com echo $produto; e o PHP responde com “Array”.

Erro comum

  • Tentar imprimir uma estrutura complexa como se fosse texto.

Como evitar

  • Exibir campos específicos:
    • nome, preço, quantidade etc.
  • Para depurar, usar ferramentas de inspeção (em estudo):
    • print_r / var_dump (e lembrar que é para ver estrutura, não para o usuário final)

Cena 5 — “Criei uma função linda…, mas ficou pior” (funções gigantes e confusas)

O aluno decide “organizar” e cria uma função que:

  • percorre lista
  • soma total
  • aplica desconto
  • imprime HTML
  • valida item
  • e ainda decide frete

A função vira um monstrinho. Funciona? Até funciona, mas ninguém entende.

Erro comum

  • Função com responsabilidades demais.

Como evitar

  • Criar funções pequenas e específicas:
    • calcularTotal($itens)
    • aplicarDesconto($total)
    • formatarMoeda($valor)

Regra de ouro

  • Se você precisa “explicar demais” o que uma função faz, ela provavelmente está fazendo coisa demais.

Cena 6 — “Minha função não enxerga a variável do lado de fora” (escopo)

O aluno cria $desconto = 0.10; fora da função e acha que dentro da função ela vai funcionar automaticamente. Aí dá erro ou fica zero.

Erro comum

  • Confundir escopo: variável dentro e fora de função são mundos diferentes.

Como evitar

  • Passar por parâmetro (mais limpo e recomendado)
  • Ou definir a variável dentro da função (quando fizer sentido)

Lição

  • Função boa é independente: recebe o que precisa e devolve o resultado.

Como o sistema do Seu Zé ficou “profissional” no final (sem complicar)

Depois de sofrer um pouco, o aluno reestrutura o código assim:

1.     O carrinho é um array de itens padronizados (nome, preco, qtd)

2.     Um foreach lista os itens e exibe na tela

3.     Uma função calcula o total (sem imprimir nada)

4.     Outra função aplica desconto se necessário

5.     Uma função formata valores para exibição

O resultado: código mais curto, mais claro, mais confiável.

Checklist rápido: os 8 erros mais comuns do Módulo 2 (e o antídoto)

  • Loop passa do limite →
  • use count() e cuidado com < vs <=
  • Pula item (começa em 1) → em arrays, geralmente começa em 0
  • Total vira texto → some com +, concatena com .
  • Total “infla” sozinho → inicialize acumuladores antes do loop
  • Chave “não existe” → padronize nomes (preco, não preço)
  • echo mostra “Array” → exiba campos, não a estrutura inteira
  • Função gigante → divida em funções pequenas e claras
  • Variável não aparece na função → passe por parâmetro (escopo)

 

Parte inferior do formulário

Quer acesso gratuito a mais materiais como este?

Acesse materiais, apostilas e vídeos em mais de 3000 cursos, tudo isso gratuitamente!

Matricule-se Agora