Ir para o conteúdo

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 a True, o nome da constante não é sensível a maiúsculas e minúsculas; se marcado como False, é (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.

  1. É o código que é executado no inicio da primeira vez do for.
    for($passar = 0;  [parte2]; [parte3]){}
    
  2. É 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++;
    }
    
  3. É 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 o foreach é executado.
  • variavel_value A variável que irá conter o valor, conteúdo do registo do array. É alterada de cada vez que o foreach é executado.