O PHP é uma linguagem interpretada, o que significa que executa diretamente o código que escreves.
Os ficheiros de código PHP são ficheiros de texto que contêm uma tag de abertura do PHP, <?php, que marca o início do código PHP.
Se o ficheiro contiver apenas código PHP, é possível omitir a tag de fecho ?>, que marca o fim do código PHP.
Consulta a documentação das tags do PHP para saberes mais sobre a tag do PHP.
<?php
// All PHP code goes here
// No closing tag required at the end
Para facilitar a leitura, todos os exemplos de código omitem a tag de abertura do PHP <?php.
Mas ela está presente em todos os exercícios de PHP, por isso não precisas de a adicionar tu.
Todas as instruções, como atribuições ou chamadas de funções, têm de terminar com um ; para a separação de instruções.
Omitir o ; (como em JavaScript) não é permitido e dá origem a erros de sintaxe.
Aprende mais sobre a separação de instruções na documentação do PHP.
$message = "Success!"; // Statement correctly ends with `;`
$message = "I know JavaScript." // PHP Parse error: syntax error, [...]
O PHP é uma linguagem de programação com tipagem dinâmica.
Os tipos dos valores só são verificados enquanto o programa está a ser executado.
Com o operador de atribuição =, podes atribuir qualquer tipo de valor a qualquer nome de variável.
Os nomes de variáveis têm de começar com o símbolo de dólar $.
Para aprofundares as variáveis, consulta a documentação das variáveis do PHP.
$count = 1; // Assign an integer value of 1
$count = 2; // Re-assign a new value to the variable
$count = false; // You may assign any value type
// Strings can be created by enclosing the characters
// within single `'` quotes or double `"` quotes.
$message = "Success!";
Podes passar valores literais e valores guardados em variáveis a funções. Quando defines argumentos de uma função, são criadas novas variáveis para guardar os valores que lhe são passados.
// Declare the window_width function
function window_width($width)
{
echo $width; // Access the value passed into the function as $width
// ...
}
window_width(100); // Call the function with the literal value 100
$newWidth = 100;
window_width($newWidth); // Call the function with the value stored in $newWidth
As funções podem devolver valores com a palavra-chave return.
Os valores a devolver podem ser literais, estar guardados em variáveis ou ser o resultado de uma instrução.
function window_height()
{
$heightOffset = 10;
return 100 + $heightOffset;
}
As funções dentro de classes e das suas instâncias chamam-se métodos.
Para chamar um método, o nome é precedido da instância e de ->.
Uma instância de uma classe é criada com a operação new.
Os métodos têm acesso à variável especial $this, que se refere à instância atual.
<?php
// Calculator.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
Vamos aprofundar as funções e as classes em exercícios posteriores.
Como forma básica de depuração, imprimir valores e conteúdos de variáveis ajuda a perceber o que acontece. O PHP pode imprimir valores com:
echo $variable; para mostrar uma representação em string do valorprint $variable;, que é o mesmo que echo $variable;
var_dump($variable); para obteres mais informações sobre o valor, por exemplo o tipo que o PHP vêQuando usas echo ou print: strings vazias, false e null não aparecem.
E as classes e as instâncias fazem com que dê erro.
Usa var_dump() para veres estes casos.
No editor online, o resultado que produzes é mostrado juntamente com os resultados dos testes. Quando usas a CLI, o resultado aparece misturado com o indicador de progresso, antes do resumo dos testes.
Os ficheiros são as unidades básicas de organização do código em PHP e em muitas outras linguagens. Para mostrar o nome do ficheiro a que devemos olhar num bloco de código, usamos um comentário. Nunca precisas de adicionar comentários desses aos teus ficheiros:
<?php
// NameOfPhpFile.php
[...]
Código, funções e classes podem estar todos presentes num único ficheiro. Mas, normalmente, este tipo de unidades de código está em ficheiros separados.
É prática comum ter uma classe por ficheiro, com um nome de ficheiro que corresponde à classe.
<?php
// Calculator.php
class Calculator {
// ...
function add($x, $y)
{
return $x + $y;
}
}
Normalmente, as funções são agrupadas em ficheiros que descrevem o seu tema comum.
<?php
// window_handling.php
function window_paint()
{
// ...
}
function window_size($width, $height)
{
// ...
}
function window_move($x, $y)
{
// ...
}
E há frequentemente ficheiros que contêm instruções para execução direta, como um index.php, que é habitualmente usado como ponto de entrada de uma aplicação web.
<?php
// index.php
$sum = add(1, 2);
// ...
Os nomes das classes devem estar todos em PascalCase.
Dependendo da norma de estilo, os nomes de variáveis, funções e métodos podem estar em camelCase ou em snake_case.
Os nomes podem conter letras a-zA-Z, números 0-9 e underscores _, mas não podem começar por um número.
Os comentários de uma linha começam com //, e um bloco de texto pode ser envolvido por /* e */ para se tornar um comentário de várias linhas.
// Single-line comment
/*
Multi-line comment
*/