Iniciação ao PHP
Para começar, devemos ter em conta que o PHP é uma linguagem server-side, ou seja, é interpretada do lado do servidor. Portanto, temos de instalar um servidor como XAMPP ou WAMP, ou então o Apache. Embora, para iniciados, eu aconselhe o XAMPP ou WAMP. Depois de termos o servidor instalado, podemos começar a programar.
A Linguagem
A sintaxe da linguagem é bastante simples, pelo que se já tivermos experiência noutra linguagem, acharemos muito fácil.
Começar o ficheiro .php
Para começar o ficheiro .php
, devemos abrir as tags que indicam que dentro delas, todo o código é PHP, e portanto, executado como PHP pelo servidor. Abrir tags:
<?php
Fechar tags:
?>
Nota: Existem as chamadas short-tags que são apenas:
<? ?>
Mas estas podem não ser permitidas em todos os servidores, pelo que devem ser evitadas, visto que não trazem nenhuma compensação, apenas poupam tempo.
Output
O que é o output? O output é o que o servidor envia para o browser, aquilo que vemos, sendo o output geralmente HTML. Temos várias formas de fazer output em PHP.
Echo:
echo "Hello World!;"
Print:
print "Hello World!;"
Print_r: O print_r
imprime o resultado de uma matriz. Podem ver como trabalhar com matrizes neste documento.
print_r $array;
Fechar as tags PHP:
<?php
//código PHP
?>
Output
<?php
//código PHP
?>
Comentários
Há três formas de comentar código em PHP. //Comentário:
//Comentário
#Comentário:
#Comentário
/*Comentário Multilinha*/:
/*
Comentário Multilinha
Por Scorch
*/
Input
Para o código ser completamente dinâmico, tem de haver input para o utilizador poder comunicar com o PHP. Há várias maneiras de haver input, mas geralmente as duas mais usadas são: forms ($_POST
/$_GET
) e query strings ($_GET
). Para esse efeito, usam-se os forms em HTML. Para tal usa-se um output como:
echo "<form method="post" action="submeter.php">
<input type="textbox" id="texto" value="Texto" />
<input type="submit" id="submit" value="Submeter">
</form>"
Nos forms, o method
é o método HTTP que o browser utiliza para submeter o conteúdo do mesmo. Por defeito é POST
, mas podemos também definir como GET
. Se for como definido GET
, o formulário enviará os seus dados na barra de endereços do browser. O parâmetro action
é o ficheiro PHP que vamos utilizar para tratar a informação recolhida no input. Pode até ser o mesmo ficheiro.
Aceder à informação do input
Para aceder à informação do input temos várias hipóteses. Caso usemos o método POST
, devemos proceder assim:
$_POST["id_ou_nome_do_input"];
Caso usemos o método GET
, devemos proceder assim:
$_GET["id_ou_nome_do_input"];
Para acedermos a ambos, podemos proceder da seguinte forma.
$_REQUEST["id_ou_nome_do_input"];
Importante: No nome das variáveis, o PHP é case sensitive, pelo que devemos escrever os nomes destas variáveis sempre em maiúsculas.
Ambas as três variáveis acima são superglobals, o que significa que são acessíveis no código PHP em qualquer altura, sem ser necessário usar o statement global.
Mas se quisermos, não precisamos de formulários para enviar as variáveis por query string. Podemos enviá-las directamente. Isto pode ser numa hiperligação ou ao redireccionarmos a página. Por exemplo, se quisessemos passar os valores olá
e adeus
em duas variáveis diferentes para depois serem interpretados pelo ficheiro index.php
:
index.php?start=ola&end=adeus
Então, para imprimirmos os valores, ou simplesmente obtê-los:
<?php
echo $_GET['start'].' e '.$_GET['end'];
?>
Isto irá imprimir:
ola e adeus
Variáveis
As variáveis em PHP, e ao contrário da maioria das linguagens de programação, não são precisas declarar antes de as usar. Para as usarmos, basta escrevermos $
antes do nome da variável.
$nome_da_variavel = "Olá";
No entanto, é possível declararmos as variáveis sem lhes atribuirmos nenhum valor, muito útil no caso de objectos.
var $nome_da_variavel;
Arrays/Matrizes
Podem ver um artigo sobre arrays na Wiki P@P aqui.
Constantes
As constantes são parecidas com as variáveis, com a única diferença, como o próprio nome indica, não pode ser alteradas depois de definidas. Para se definir uma constante, usamos a função define()
.
define("CONSTANTE", "HelloWorld!", True);
define(nome, valor, case\_insensitive)
:
nome
o nome da constante.valor
o valor da constante.case_insensitive
se marcado aTrue
, o nome da constante não é sensível a maiúsculas e minúsculas; se marcado comoFalse
, é (False
por omissão).
Para aceder-mos ao valor das mesmas utilizamos o nome atribuído.
echo CONSTANTE;
Funções
As funções são "pedaços" de código reutilizáveis. Podemos definir argumentos, para que a função, com o mesmo código, possa apresentar outputs diferentes a cada chamada. Por exemplo:
function funcao($argumento){
if ($argumento == 1){
echo "1"
} else {
echo "2"
}
}
Para chamarmos a função, basta colocar o nome dela e definir os valores dos argumentos.
funcao(1);
Importante: No caso desta função, todos os argumentos são obrigatórios, e se não forem devidamente prênchidos, o PHP retorna o Fatal Error. Para definirmos argumentos opcionais, definimos-lhes um valor por defeito, assim:
function funcao($argumento, $segundo_argumento = True){
if ($argumento == 1){
echo "1"
} else {
echo "2"
}
}
Neste caso, podemos definir o $segundo_argumento
ou podemos não o definir, e ele fica com o valor por defeito, neste caso, True
.
Estruturas de decisão
As estruturas de decisão são muito simples, mas talvez as encontremos em quase todos os blocos de código. As estruturas de decisão servem para podermos executar códigos diferentes consoante as condições que usarmos. Mas nada melhor que um exemplo.
//O que está dentro de parentes é a condição.
if (1 < 2){
//isto é o código a ser executado caso a condição acima seja verdadeira.
echo "Um é menor que dois";
//um senão
} elseif (1 > 2){
echo "Um é maior que dois."
} else {
echo "Um é igual a dois."
}
Como é óbvio, na situação acima, será sempre executado o primeiro bloco de código, visto que um foi, é e será sempre menor do que dois. Podemos ter quantos elseif
quisermos, mas apenas um else
e um if
na mesma estrutura de decisão. Podemos ter, no entanto, várias estruturas de decisão.
if (1 < 2){
//isto é o código a ser executado caso a condição acima seja verdadeira.
echo "Um é menor que dois";
//um senão
} elseif (1 > 2){
echo "Um é maior que dois."
} else {
echo "Um é igual a dois."
}
if (2 < 3){
//isto é o código a ser executado caso a condição acima seja verdadeira.
echo "Dois é menor que três.";
//um senão
} elseif (2 > 3){
echo "Dois é maior que três."
} else {
echo "Dois é igual a três."
}
O else é executado caso nenhuma das condições seja verdadeira. E caso o PHP encontre uma condição verdadeira, termina essa estrutura de decisão, pelo que mesmo que esta tenha mais condições verdadeiras abaixo da primeira verdadeira, estas não serão executadas. Devemos ter sempre cuidado com a ordem com que colocarmos as condições.
Aviso: O else
tem que estar sempre no fim da estrutura de decisão.
Mas podemos utilizar também um switch
, que é igualmente simples.
switch ($xpto) {
case 0:
echo "$xpto é igual a zero.";
break;
case 1:
echo "$xpto é igual a um.";
break;
case 2:
echo "$xpto é igual a dois.";
break;
default:
echo "i não é igual a 0, 1 ou 2";
}
A instrução default
não é obrigatória e é igual ao else
.
Ciclos
Tal como a maioria das linguagens, PHP suporta ciclos. O que é que eles nos permitem? Permitem executar uma acção mais do que uma vez. Ou seja, podemos executá-la 5 vezes ou 10, ou 43, ou outro número natural qualquer (incluindo o zero). Existem vários ciclos, o for
, o while
e o foreach
.
For
O for
é talvez o melhor mais completo dos ciclos. A sua sintaxe é a seguinte:
for ([parte1]; [parte2]; [parte3]){
//Código a executar dentro do ciclo.
}
Ou seja, a área dos argumentos está dividida em três.
- É o código que é executado no inicio da primeira vez do for.
for($passar = 0; [parte2]; [parte3]){}
- É a condição para que o for continue. Por exemplo, se for verdadeira, o for "corre" mais uma vez, senão para.
//Aqui o for executa dez vezes for($passar = 0; $passar < 10; [parte3]){ $passar++; } //Ou seja, é o mesmo que isto. for($passar = 1; $passar <= 10; [parte3]){ $passar++; }
- É executada no fim de cada iteração, no fim de cada execução do script.
for($passar = 0; $passar < 10; $passar++){}
Um exemplo básico e útil:
//Esta função vai escrever a mesma frase x número de vezes.
function escreverFrases($frase, $vezes){
for ($passar = 0; $passar < $vezes; $passar++){
echo $frase."<br />";
}
}
escreverFrases("Não devo falar na aula." 50);
While
O while
é um tipo de ciclo mais simples. Tem apenas uma parte, a segunda parte do for
. Tudo o resto é feito à parte. Por exemplo:
//Esta função vai escrever a mesma frase x número de vezes.
function escreverFrases($frase, $vezes){
//Isto simula a primeira parte do for, ou seja, coloca-se antes do while.
$passar = 0;
while ($passar < $vezes){
echo $frase."<br />";
//Isto simula a terceira parte do for, ou seja, coloca-se no fim do while
$passar++;
}
}
escreverFrases("Não devo falar na aula." 50);
Foreach
O foreach
serve para percorrer um array de uma ponta à outra. Isto é uma funcionalidade que não existe no C. Primeiro, necessitamos de um array:
$pap_admins[1] = "Heckel";
$pap_admins[2] = "d_pintassilgo";
$pap_admins[3] = "Rui Carlos";
Depois, é utilizar o foreach
.
foreach ($pap_admins as $index => $value){
echo $value."<br />";
}
Ou seja, isto irá imprimir:
Heckel<br />
d_pintassilgo<br />
Rui Carlos<br />
A sintaxe:
foreach ([array] as [variavel_index] => [variavel_value]){}
array
O nome do array para percorrer.variavel_index
O nome da variável que irá conter o index de cada registo do array. É alterada de cada vez que oforeach
é executado.variavel_value
A variável que irá conter o valor, conteúdo do registo do array. É alterada de cada vez que oforeach
é executado.