Vamos aprender a programar? Então separe aí 90 minutos do seu dia e vamos criar seu primeiro programa PHP. Essa aula é para quem nunca programou nada, mas ajuda se você tiver lido minha introdução sobre HTML. A estratégia aqui é sair do tradicional “Hello World” e partir direto para uma aplicação prática.

Sei que o título diz que dá para fazer a aula em 1h30, mas não se preocupe com o tempo. Já dei essa aula para diferentes turmas de alunos e sei que ela funciona direitinho. No entanto, a preocupação aqui não é fazer rápido, e sim entender a mecânica do PHP. Então se você precisar de mais tempo, tudo bem.

continue lendo

Nosso objetivo é criar um programa que gera cartelas de bingo automaticamente. Bingo é aquele jogo em que você tem que marcar mais itens. A nossa cartela de bingo vai usar palavras para gerar um bingo de respostas comuns a feministas, aquelas coisas que a gente sempre espera como argumento numa discussão.

Cartela de bingo. OpenClipart-Vectors / Pixabay
A ideia vai ter a seguinte mecânica:

  • Vamos criar um grupo de palavras/frases curtas
  • O programa vai embaralhar as palavras da lista, de forma que elas mudam de posição
  • Criaremos um esqueleto de tabela para ser preenchida pelas 25 primeiras palavras ou frases da lista já embaralhada
  • Vamos colocar uma palavra/frase por célula até que os 25 quadros sejam preenchidos
  • Por fim, o programa mostra a cartela pronta que deve ficar assim:
BINGO
palavrapalavrapalavrapalavrapalavra
palavrapalavrapalavrapalavrapalavra
palavrapalavrapalavrapalavrapalavra
palavrapalavrapalavrapalavrapalavra
palavrapalavrapalavrapalavrapalavra

Cada vez que o programa for ativado, gera uma nova cartela. E então, vamos lá?

Estrutura básica do PHP

Toda linguagem de programação tem uma ortografia própria. Ou seja, um jeito de escrever código  que tem que ser respeitado nos mínimos detalhes. A diferença de “falar” com o computador e “falar” com pessoas é que o computador não consegue inferir nada, a não ser que você o programe para isso. Isso significa o seguinte:

  • quando alguém escreve que está voltando para caZa, você entende o que ela quer dizer, apesar do erro de ortografia
  • quando, no código, o/ programador/a troca um ; por uma , o programa não funciona porque o computador não consegue inferir qual a intenção de quem escreveu

A primeira coisa que se deve fazer no código é dizer para o computador que estamos falando “em php”. Assim:

Note que o que está depois das barras duplas (//) são comentários, ou seja, texto que incluímos no código para explicar ele. Os comentários são ignorados pelo computador, mas muito úteis para os humanos entenderem os códigos que escreveram ou o de outros/as programadores/as.
<?php // início do código

//aqui vamos colocar os comandos php

?> // fim do código

Para produzir nosso código vamos usar uma ferramenta online chamada PHP Fiddle. Por que? Porque para fazer um programa funcionar precisamos ter um interpretador. Ou seja, você tem que instalar aí no seu computador algo que entenda o que foi dito em php e o execute.

Mas não vamos nos preocupar com isso agora. Com o PHP Fiddle vamos usar um interpretador PHP online. Você pode usar o mesmo site para testar outros códigos. É bastante prático e simples. Só faça uma pausa aqui e crie sua conta gratuita na ferramenta.

Pronto? Então vamos continuar.

Crie um documento novo:

<?php

?>

Obs: Note que se você não estiver logado no site PHP Fiddle não vai conseguir salvar o seu trabalho.

Nosso segundo passo será criar a função Bingo, que irá executar as ações que listamos acima:

<?php

function Bingo() {

}

?>

Aí temos o elemento function com o nome Bingo (com o B maiúsculo. Lembre-se que o computador diferencia maiúsculas de minúsculas). Após o nome da função temos duas chaves: { }. É no meio delas que vão os comandos referentes à função Bingo. Ou seja, toda vez que a função Bingo for chamada, todas as ações que estão dentro das chaves serão executadas.

 

Vamos criar um grupo de palavras/frases curtas

O primeiro item será justamente a lista de palavras. Faremos isso criando uma varíavel chamada $palavras que será uma array, ou seja, uma coleção de elementos. Isso significa que a variável não terá um só valor, e sim vários.

Toda variável php começa com o sinal $. Não é possível colocar espaços no nome da variável e alguns nomes são reservados, ou seja, não podem ser usados. Mas, no geral, basta um nome começado por cifrão sem caracteres especiais (ç, ã etc) ser declarado igual a algo que está criada a sua variável.

<?php
  function Bingo() {
$palavras = array( // variável é igual a uma array cujos elementos ficam dentro de parêntesis
 "mulher só ganha menos porque trabalha menos", // note que cada elemento está entre aspas e é encerrado por uma vírgula
 "Tem quem é para casar",
 "Você vai vestida assim?",
 "O que ela estava vestindo?",
 "A maioria das mulheres não...",
 "Você seria tão bonita se perdesse peso",
 "Isso não é coisa de menina",
 "Não seja tão sensível",
 "Deve estar de TPM",
 "Mulher tem que se dar o respeito",
 "Mulher só se apaixona por canalha",
 "Tem mulher que gosta de apanhar",
 "Isso não é trabalho para mulher",
 "Mulheres são passionais, homens são racionais",
 "Homem tem mais facilidade com números",
 "A mãe voltou para o trabalho e está terceirizando o filho",
 "Ser magra é mais saudável",
 "Ser mãe é padecer no paraíso",
 "Tem roupa que não fica bem em gorda",
 "Mulher não pode se expor",
 "A mulher é mais sensível",
 "Foi só uma piada",
 "Nem todo homem é machista",
 "Mulher minha não...",
 "Feministas odeiam homens"
 ); // fim da array
}
?>

Embaralhando a lista de palavras

Agora, na sequência, vamos usar o comando shuffle para “embaralhar” os itens da array. Note que vamos começar a colocar aqui só os novos comandos, para não deixar esse post muito longo e mais claro. Mas esse novo comando (e os próximos) devem ser colocados na sequência do anterior.

shuffle($palavras); // comando para embaralhar a lista

Note que cada vez que um comando é concluído ele é encerrado com um ponto e vírgula.

Criaremos um esqueleto da tabela

Agora vamos criar o esqueleto da cartela de bingo. Para isso vamos criar uma variável chamada $cartela e vamos salvar dentro dela o código HTML referente à tabela. O que estamos montando agora é isso:

BINGO

Então agora vamos incluir a variável no código. Note que vamos usar a notação .= para adicionar texto à nossa variável. Isso significa que ela vai colando no fim dos valores anteriores os valores novos.

$cartela = "<table id='bingo'>"; // aqui criamos a cartela e damos início ao código HTML table

$cartela .= "<thead><tr>"; // criamos aqui a linha de títulos da tabela e adicionamos à variável
$cartela .= "<th>B</th>
      <th>I</th><th>N</th>
      <th>G</th><th>O</th>"; // aqui incluímos as células com as letras BINGO
$cartela .= "</tr></thead>"; // encerramos a primeira linha da tabela
$cartela .= "<tbody>"; // começamos o corpo da tabela
$cartela .= "<tr>"; //criamos a primeira linha

// aqui está um espaço em branco para incluirmos o restante do código

$cartela .= "</tr>"; //encerramos a linhha
$cartela .= "</tbody>"; // encerramos o corpo da tabela
$cartela .= "</table>"; // encerramos a tabela
      

Agora vamos criar as 25 células que faltam na tabela. Para tanto usaremos dois tipos de loop. Um loop é um laço de programação que se repete enquanto as condição dadas são verdadeiras. Por exemplo: sabe quando você está almoçando na sua vó e ela fica colocando mais comida no seu prato mesmo que você diga que já está satisfeito? Isso é um loop. Enquanto ainda houver comida na casa (essa é a condição que precisa ser verdadeira), a sua vô vai continuar fazendo você comer.

No código abaixo temos dois loops:
1. for($cell=0; $cell<25; $cell++): lê-se verdadeiro enquanto a variável $cell for menor que 25. A cada execução do loop o código soma 1 ao valor de $cell ($cell++), cujo valor inicial é 0 ($cell=0).

Isso porque temos 25 células, então o loop tem que funcionar até que as 25 células estejam desenhadas.
Enquanto a condição for verdadeira, o loop vai adicionar à variável $cartela o código html
– que inicia uma célula – e o item das lista $palavras cujo índice é igual ao valor de $cell.
Explico: Sempre que uma variável é uma lista de valores, você pode acessar cada item da lista usando o índice dele. O índice é a posição da palavras na lista e começa com zero. Ou seja, a lista $numeros = array(1,2,3,4) tem quatro itens cujos índices são 0, 1, 2 e 3.
Então o que o código irá fazer é ir pegando cada item na ordem em que eles estão depois do shuffle e colocando dentro de uma célula (note o

no fim do comando).

2. if($rowend == 0 && $cell < 24): lê-se verdadeiro se $rowend é igual a 0 e $cell é menor que 24. A variável $rowend está dentro do loop for e tem o seguinte valor ($cell + 1) % 5, ou seja, o resto da divisão do valor de $cell mais 1 por 5. Isso significa que quando o valor é múltiplo de 5, o resto dá 0. Por isso o loop vai ser executado toda vez que $cell + 1 for igual a um múltiplo de cinco.
Para deixar mais claro: quando o loop for começa, $cell vale 0 e $rowend é igual ao resto da divisão de 1/5, que é 1.
Quando o loop chegar ao valor 4, $rowend será igual a 5/5, uma divisão cujo resto é 0. Se for o caso e $cell for menor que 24 (ou seja, ainda não temos todas as 25 células), o programa insere

n
no código, que são as tags HTML que encerram e começam uma linha numa tabela.Ou seja, as próximas células construídas dentro do loop estarão numa nova linha.

Aqui está o código:

for($cell=0; $cell<25; $cell++)
  {
    $rowend = ($cell + 1) % 5;
   
    $cartela .= "<td>" 
     . $palavras[$cell] . "</td>";
    if($rowend == 0 && $cell < 24) {
      $cartela .= "</tr>n<tr>";
    }
  }

Note que cada loop é definido por um conjunto de chaves. Os comandos que serão executados são os que estão dentro dessas chaves. Por isso o loop if só vai ser executado enquanto o for ainda for verdadeiro.

Mostrando a cartela

Agora que nosso programa já montou a tabela, mas não nos mostrou. Teremos que dizer para o computador que ele precisa fazer isso usando o comando echo, que publica na tela o que queremos.

echo $cartela;

Chamando a função Bingo

Agora é hora de chamar a função que criamos. Abaixo está o código completo, para você verificar se fez tudo certinho aí.

<?php
  function Bingo() {
$palavras = array( // variável é igual a uma array cujos elementos ficam dentro de parêntesis
 "mulher só ganha menos porque trabalha menos", // note que cada elemento está entre aspas e é encerrado por uma vírgula
 "Tem quem é para casar",
 "Você vai vestida assim?",
 "O que ela estava vestindo?",
 "A maioria das mulheres não...",
 "Você seria tão bonita se perdesse peso",
 "Isso não é coisa de menina",
 "Não seja tão sensível",
 "Deve estar de TPM",
 "Mulher tem que se dar o respeito",
 "Mulher só se apaixona por canalha",
 "Tem mulher que gosta de apanhar",
 "Isso não é trabalho para mulher",
 "Mulheres são passionais, homens são racionais",
 "Homem tem mais facilidade com números",
 "A mãe voltou para o trabalho e está terceirizando o filho",
 "Ser magra é mais saudável",
 "Ser mãe é padecer no paraíso",
 "Tem roupa que não fica bem em gorda",
 "Mulher não pode se expor",
 "A mulher é mais sensível",
 "Foi só uma piada",
 "Nem todo homem é machista",
 "Mulher minha não...",
 "Feministas odeiam homens"
 ); // fim da array
shuffle($palavras);
      $cartela = "<table id='bingo'>"; // aqui criamos a cartela e damos início ao código HTML table

$cartela .= "<thead><tr>"; // criamos aqui a linha de títulos da tabela e adicionamos à variável
$cartela .= "<th>B</th>
      <th>I</th><th>N</th>
      <th>G</th><th>O</th>"; // aqui incluímos as células com as letras BINGO
$cartela .= "</tr></thead>"; // encerramos a primeira linha da tabela
$cartela .= "<tbody>"; // começamos o corpo da tabela
$cartela .= "<tr>"; //criamos a primeira linha

for($cell=0; $cell<25; $cell++)
  {
    $rowend = ($cell + 1) % 5;
   
    $cartela .= "<td>" 
     . $palavras[$cell] . "</td>";
    if($rowend == 0 && $cell < 24) {
      $cartela .= "</tr>n<tr>";
    }
  }

$cartela .= "</tr>"; //encerramos a linhha
$cartela .= "</tbody>"; // encerramos o corpo da tabela
$cartela .= "</table>"; // encerramos a tabela
      
      echo $cartela;
  }
Bingo();
?>

Pronto. Agora é só clicar no botão Run do PHP Fiddle e ver o resultado na tela.

O programa é executado quando você aperta o botão Run

E o resultado deve ser parecido com esse:

Parabéns! Você fez seu primeiro programa em php. Até a próxima aula.

Obs: esse tutorial é uma versão adaptada do SitePoint.

Categories: manchete web