Bento Evaldo Junior - Desenvolvimento web com PHP e MySQL стр 8.

Шрифт
Фон

<th>Qui</th>

<th>Sex</th>

<th>Sáb</th>

</tr>

<?php linha(); ?>

<?php linha(); ?>

<?php linha(); ?>

22

Casa do Código

Capítulo 3. Construindo um calendário com PHP

<?php linha(); ?>

<?php linha(); ?>

</table>

Adicionamos cinco chamadas à função linha(), assim, quando acessarmos

localhost/calendario.php será renderizada uma tabela parecida com esta:

Figura 3.3: Calendário ainda sem os dias

Agora vamos adicionar uma nova função para desenhar o calendário. Esta fun-

ção será chamada de calendario() e deverá ser adicionada logo após a função

linha:

<?php

function linha()

{

...

}

function calendario()

{

$dia = 1;

$semana = array();

while ($dia <= 31) {

array_push($semana, $dia);

if (count($semana) == 7) {

linha($semana);

$semana = array();

}

$dia++;

}

23

3.3. Usando funções

Casa do Código

}

?>

Aqui temos bastante coisa nova. Pela primeira vez estamos usando variáveis no

PHP. Repare que as variáveis sempre começam com um cifrão ( $). Esta é uma regra

do PHP: elas sempre iniciam com cifrão seguido de uma letra ou um underline.

Sendo assim, as variáveis $dia, $semana, $pessoa e $_nome são válidas para o

PHP, mas as $1, $-nome e $!nome são inválidas.

Neste trecho também estamos usando um tipo de dados do PHP chamado de

array.

Reparou no uso da instrução while? Viu que esta instrução é praticamente

igual ao while de linguagens como C? Outra instrução bem parecida é o if, que

verifica se uma condição é verdadeira.

Para desenhar o calendário, iniciamos no dia primeiro e usamos o while para

fazer um laço que se repetirá até o dia 31. O array $semana é usado para colocar

os dias da semana e garantimos que ele não terá mais que sete dias usando o if. A

função array_push() adiciona mais um valor em nosso array e dentro do if o

array é reiniciado.

Ah, uma nova função apresentada foi a count(). Seu funcionamento é fácil de

deduzir, certo? Ela conta a quantidade de itens do nosso array $semana.

Mas repare que a nossa função linha() foi chamada com um parâmetro, que é

um array com os dias da semana. Então, precisamos alterar a função linha() para

receber este array e exibir seus valores. Altere a função linha() para ficar como

esta:

<?php

function linha($semana)

{

echo "

<tr>

<td>{$semana[0]}</td>

<td>{$semana[1]}</td>

<td>{$semana[2]}</td>

<td>{$semana[3]}</td>

<td>{$semana[4]}</td>

<td>{$semana[5]}</td>

<td>{$semana[6]}</td>

</tr>

24

Casa do Código

Capítulo 3. Construindo um calendário com PHP

";

}

Veja que agora ela recebe um parâmetro chamado $semana e o conteúdo de

$semana é exibido usando os colchetes para acessar cada um dos itens. Atenção:

Um array inicia seus itens no número zero! Por isso, exibimos do zero ao seis.

Agora precisamos fazer mais uma alteração para exibir o calendário que temos

até agora. Na tabela, retire aquelas cinco chamadas para a função linha() e troque

por uma chamada para a função calendario():

<table border="1">

<tr>

<th>Dom</th>

<th>Seg</th>

<th>Ter</th>

<th>Qua</th>

<th>Qui</th>

<th>Sex</th>

<th>Sáb</th>

</tr>

<?php calendario(); ?>

</table>

Agora, acesse localhost/calendario.php, ou atualize a página, caso já es-

teja aberta, e você verá um resultado parecido com este:

Figura 3.4: Calendário, mas sem todos os dias do mês

Já está parecido com um calendário! Mas ele está exibindo apenas até o dia 28!

Isso está acontecendo por estarmos verificando se o número de itens na variável

25

3.4. Entendendo e se entendendo com os erros

Casa do Código

$semana é igual a 7. O problema é que este número não vai chegar a sete, já que

de 28 para 31 são apenas 3 dias de diferença.

3.4

Entendendo e se entendendo com os erros

Uma possível solução seria chamar a função linha() após o laço while passando

o array semana com menos dias. Altere seu código para fazer esta chamada:

<?php

function calendario()

{

$dia = 1;

$semana = array();

while ($dia <= 31) {

array_push($semana, $dia);

if (count($semana) == 7) {

linha($semana);

$semana = array();

}

$dia++;

}

linha($semana);

}

?>

Atualize a página. Veja que os dias estão sendo exibidos, mas perceba a quanti-

dade de erros que apareceram!

26

Casa do Código

Capítulo 3. Construindo um calendário com PHP

Figura 3.5: Calendário completo, mas com alguns erros

Veja que o erro informado é Undefined offset: 3. Isso quer dizer que ele

está tentando acessar o índice 3 no array $semana e não está encontrando. O mesmo

acontece com os índices 4, 5 e 6, por isso esse monte de erros apareceu.

A importância das mensagens de erro

É comum que programadores novatos ignorem as mensagens de erro

da linguagem. Isso é um problema, pois quando alguma falha acontece,

a linguagem faz o melhor possível para indicar o que aconteceu. Quando

topar com um erro no PHP, tente ler a mensagem e compreender o que

houve. Em geral, ele diz a linha do erro e explica bem o problema.

3.5

Meu PHP não mostrou os erros!

Pode acontecer de você não enxergar os erros gerados, pois seu PHP pode estar con-

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке