Академический Документы
Профессиональный Документы
Культура Документы
Objetivos do mdulo:
Contedos do mdulo:
Estrutura de um programa
Operadores e expresses
Mecanismos de controlo
Seleo simples
Seleo mltipla
Repetio condicional
Repetio incondicional
Verso PHP
Estrutura de um programa
Em PHP os programas so ficheiros executados pelo servidor para criar pginas dinmicas que so enviadas para o
browser do computador cliente. O cdigo PHP para ser executado como cdigo deve estar entre <?php ?>.
Exemplo-1
<?php
Echo Ol mundo;
?>
Nestes exemplos vamos utilizar o servidor web gratuito mais popular cujo nome Apache e a verso 5.3.8 do PHP.
Este pequeno exemplo deve ser gravado na pasta do servidor web, assim, no Windows esta pasta est localizada
dentro da pasta programas\Apache Software Foundation\Apache2.2\htdocs, no Linux a pasta /var/www/html.
Para que este exemplo fique correto devemos incluir algumas etiquetas html, uma vez que o cdigo php vai gerar um
ficheiro html.
Exemplo-1a
<html>
<body>
<?php
Echo Ol mundo;
?>
</body>
</html>
No podemos esquecer que este cdigo s executado se a extenso do ficheiro for php e no html.
Tal como em C todas as instrues em PHP devem terminar com um ; (ponto e vrgula), de igual modo o PHP case
sensitive, ou seja, diferente escrever em minsculas e MAISCULAS.
Comentrios
O PHP no tem comandos para declarar variveis, elas so criadas quando so utilizadas. Os nomes das
variveis tm de comear com um $.
Em PHP as variveis podem mudar de tipo de dados, bastando que lhes seja atribudo um dado de um tipo
diferente.
Exemplos:
<?php
$x=10;
echo $x;
$x=Joaquim;
Echo $x;
?>
O comando echo envia o texto para a pgina que vai ser gerada, o principio o mesmo do comando printf,
ou seja, se pretendemos mostrar qualquer coisa ao utilizador devemos utilizar este comando.
Apesar de no ser necessrio definir um tipo de dados para as variveis existem os seguintes tipos de dados
que so assumidos automaticamente de acordo com os dados da varivel: int, float, boolean, string, array, object,
NULL.
Para testarmos o tipo de dados de uma varivel podemos utilizar as funes is_type, por exemplo is_string
ou is_int.
As servem para delimitar as strings (cadeiras de carateres) enquanto que o . (ponto) serve para juntar
vrias strings numa s ou juntar strings a variveis de outro tipo. Tambm pode ser utilizada a para delimitar as
strings.
Operadores e expresses
Aritmticos
+ soma
- subtrao
* multiplicao
/ diviso
% resto da diviso inteira
. Concatenar strings
Relacionais
== Igual a
=== Idntico a, verdadeiro se iguais e do mesmo tipo
> Maior que
< Menor que
>= Maior ou igual a
<= Menor ou igual a
!= Diferente de
Lgicos
&& E
|| Ou
! No
and E
or Ou
Para sada de dados existem diversas funes, sendo a uma das mais conhecidas a funo echo. Esta permite
imprimir no ecr constantes e variveis, imprimir no ecr entende-se por enviar para a pgina web que vai ser
mostrada ao utilizador. Apesar da funo echo ser bastante fcil de utilizar tambm podemos utilizar a funo printf
tal como existe em C.
echo Constante.$varivel
A introduo de dados nos programas em PHP deve ser feita atravs de formulrios html. Estes formulrios
fazem chegar os dados ao cdigo PHP atravs de duas variveis especiais, $_POST e $_GET. Dependendo do mtodo
definido no formulrio para enviar os dados utilizamos uma ou a outra.
<html>
<body>
<form name=form method=post>
Primeiro nmero:
<input type=text name=n1> </p>
Segundo nmero:
<input type=text name=n2> </p>
<input type=submit value=Somar>
</form>
</body>
</html>
Para melhor compreender o funcionamento do programa importante entender o que acontece quando so
pedidas pginas web a um servidor, assim a seguir apresenta-se o ciclo de vida de uma pgina web.
1. Ao inserir um endereo de uma pgina no browser o computador do cliente inicia um pedido de pgina ao
servidor onde esta est alojada.
2. Se a pgina tiver a extenso .html o servidor simplesmente envia essa pgina para o computador do cliente.
3. Se a pgina tiver a extenso .php o servidor abre essa pgina e executa o seu cdigo, gerando assim a pgina
que posteriormente envia para o computador cliente, a pgina enviada no contm o cdigo php, este fica
sempre no servidor, o cliente s recebe a pgina gerada pelo cdigo.
4. Quando o utilizador interage com a pgina, por exemplo clicando num boto, esta pode executar cdigo
diretamente no seu computador, por exemplo cdigo em javascript, no sendo necessrio enviar nem
receber nada do servidor. Por vezes ao clicar num boto iniciamos um processo de enviar dados para o
Muito importante: quando recebemos dados do utilizador atravs de um formulrio devemos sempre validar os
dados de modo a verificar se os campos esto corretamente preenchidos. Esta validao pode ser feita do lado do
cliente, com javascript, ou do lado do servidor, o ideal nestes casos validar os dados na prpria pgina de modo a
informar o utilizador de quais os campos mal preenchidos. Esta validao especialmente importante quando
trabalhamos com bases de dados e com informao que requer medidas de segurana.
Assim no exemplo anterior ao clicar no boto SOMAR formulado um pedido ao servidor enviando os dados do
formulrio, identificados com os nomes nos elementos que contm esses dados. Esse pedido corresponde a chamar
a mesma pgina porque no foi indicada outra pgina para essa ao. Deste modo a pgina ao ser carregada deve
verificar se j recebeu dados ou no, se recebeu dados deve process-los, para tal verifica se as referidas variveis
especiais GET ou POST tem alguns dados.
<?php
// o formulrio utiliza o mtodo post para enviar dados por isso
//verificamos se a varivel $_POST tem algum desses dados
if(isset($_POST['n1'])){ //este if permite saber se j foi clicado o boto SOMAR
$num1=$_POST['n1'];
$num2=$_POST['n2'];
$resultado=$num1+$num2;
echo "Resultado da soma de {$num1} com {$num2} ".$resultado;
}
?>
Mecanismos de controlo
A execuo de um programa iniciada na primeira linha, sendo executadas todas as instrues por ordem
sequencial de cima para baixo e da esquerda para a direita.
Seleo simples
Os blocos de cdigo em PHP tm de estar delimitados por <?php e ?> e dentro destas etiquetas podem
existir blocos marcados com chavetas { } para indicar o inicio e fim de determinadas aes como ifs ou ciclos.
Bloco SE
Para a linguagem PHP qualquer valor diferente de 0 (zero) considerado verdadeiro. No existe o valor
verdadeiro ou falso.
Ex.2: if($idade==10){
if (condio) ao;
else ao;
Ex:
if ($idade==10){
echo Tens dez anos!;
}else{
echo No tens dez anos;
}
if (condio) ao;
elseif (condio) ao;
elseif(condio) ao;
else ao;
Ex:
if($idade==10){
echo Tens dez anos!;
}elseif ($idade==11){
echo Tens onze anos!;
}else{
echo No sei a tua idade!;
}
Seleo mltipla
Uma estrutura que pode evitar uma sequncia de SEs a estrutura switch case.
switch(varivel){
case valor1:
ao;
break;
case valor2:
ao;
$idade=10;
switch($idade){
case 10:
echo Tens dez anos;
break;
case 11:
echo Tens onze anos;
break;
default:
echo No tens dez ou onze anos;
}
Repetio condicional
Para criar ciclos em C podemos utilizar condies, tal como na estrutura SE.
while(condio)
{
ao;
}
Ex.:
$idade=0;
while($idade<10)
{
echo Idade: .$idade.</p>;
$idade=$idade+1:
}
Ciclo infinito:
while(1)
{
ao a repetir eternamente;
}
A principal diferena entre este ciclo e o anterior que no ciclo do while o cdigo sempre executado uma
vez pois a condio s testada no final da execuo.
Dentro dos ciclos podemos utilizar a instruo break para interromper a repetio.
Ex:
$idade=0;
while($idade<10)
{
echo Idade: .$idade.</p>;
$idade++;
if ($idade==5) break;
}
Outra instruo que s podemos utilizar dentro dos ciclos a instruo continue.
Ex:
$idade=0;
while($idade<10)
{
echo Idade: .$idade.</p>;
$idade++;
if ($idade==5) continue;
}
Repetio incondicional
Outro tipo de ciclos que o PHP implementa o ciclo com contador, o ciclo for.
ao;
inicio - , normalmente, utilizado para inicializar variveis mas pode ter qualquer instruo que pretendemos
executar uma vez no inicio do ciclo, mas tambm pode ficar em branco. Pode tambm ter vrias instrues
separadas por , (virgulas).
condio para continuar a condio que deve ser verdadeira para o ciclo continuar
nova repetio-, normalmente, utilizado para incrementar/decrementar a varivel mas pode ter qualquer
instruo que pretendemos executar sempre no final das instrues que esto dentro do ciclo e antes de iniciar a
repetio do ciclo. Tambm pode ficar em branco ou ter vrias instrues separadas por , (virgulas).
Ex:
for($idade=0;$idade<10;$idade++)
Em PHP existe ainda outro ciclo que permite percorrer os elementos de uma determinada estrutura.
foreach($elementos as $valor)
ao;
Ex:
<?php
$x=array("um","dois","trs");
foreach ($x as $valor)
{
echo $valor . "<br />";
}
?>