Para informações mais detalhadas sobre estes temas, consulta a página do conceito.
A etiqueta de abertura do PHP <?php marca o início do código PHP.
Todas as instruções têm de terminar com um ; para separar as instruções.
<?php
$message = "Success!"; // Statement correctly ends with `;`
$message = "I fail." // PHP Parse error: syntax error, [...]
Para facilitar a leitura, todos os exemplos de código omitem a etiqueta de abertura do PHP <?php.
Os comentários de uma linha começam com //.
// Single line comment
Com o operador de atribuição =, podes atribuir um valor a uma variável.
Os nomes das variáveis têm de começar com o sinal de dólar $ e seguir as convenções de nomenclatura.
$count = 1; // Assign value of 1
// Strings can be created by enclosing the characters
// within single `'` quotes or double `"` quotes.
$message = "Success!";
Podes passar valores e variáveis a funções.
Os argumentos de uma função tornam-se novas variáveis para guardar os valores que lhes são passados.
As funções podem devolver qualquer valor com a palavra-chave return.
function window_height($height)
{
return $height + 10;
}
window_height(100);
// => 110
As funções dentro de classes e das suas instâncias chamam-se métodos.
Para chamar um método, o nome é precedido pela instância e por ->.
Os métodos têm acesso à variável especial $this, que se refere à instância atual.
<?php
class Calculator {
public function sub($x, $y)
{
return $this->add($x, -$y); // Calls the method add() of the current instance
}
public function add($x, $y)
{
return $x + $y;
}
}
$calculator = new Calculator(); // Creates a new instance of Calculator class
$calculator->sub(3, 1); // Calls the method sub() of the instance stored in $calculator
// => 2
Neste exercício vais escrever algum código para te ajudar a cozinhar uma lasanha fantástica a partir do teu livro de receitas preferido.
Tens cinco tarefas, todas relacionadas com o tempo gasto a cozinhar a lasanha.
Implementa a função expectedCookTime na classe Lasagna, que não recebe argumentos e devolve quantos minutos a lasanha deve estar no forno.
Segundo o livro de receitas, o tempo de forno esperado é de 40 minutos:
<?php
$timer = new Lasagna();
$timer->expectedCookTime()
// => 40
Implementa a função remainingCookTime na classe Lasagna, que recebe como argumento os minutos que a lasanha já esteve no forno e devolve quantos minutos a lasanha ainda tem de ficar no forno, com base no tempo de forno esperado da tarefa anterior.
<?php
$timer = new Lasagna();
$timer->remainingCookTime(30)
// => 10
Implementa a função totalPreparationTime na classe Lasagna, que recebe como argumento o número de camadas que adicionaste à lasanha e devolve quantos minutos passaste a preparar a lasanha, partindo do princípio de que cada camada demora 2 minutos a preparar.
<?php
$timer = new Lasagna();
$timer->totalPreparationTime(3)
// => 6
Implementa a função totalElapsedTime na classe Lasagna, que recebe dois argumentos: o primeiro é o número de camadas que adicionaste à lasanha e o segundo é o número de minutos que a lasanha já esteve no forno.
A função deve devolver o total de minutos que trabalhaste a cozinhar a lasanha, ou seja, a soma do tempo de preparação, em minutos, com o tempo que a lasanha já passou no forno até ao momento.
<?php
$timer = new Lasagna();
$timer->totalElapsedTime(3, 20)
// => 26
Implementa a função alarm na classe Lasagna, que não recebe argumentos e devolve uma mensagem a indicar que a lasanha está pronta a comer.
<?php
$timer = new Lasagna();
$timer->alarm()
// => "Ding!"
Inscreve-te no Exercism para aprenderes e dominares PHP com 11 conceitos122 exercícios, e mentoria humana real, tudo grátis.