Este documento apresenta um resumo sobre os principais conceitos da linguagem de programação PHP. Ele discute brevemente a introdução, valores e tipos, armazenamento, associações, abstrações, unidades de programa, sistemas de tipos, sequenciadores e concorrência em PHP.
Paradigmas de Linguagens de Programação: Conceitos de PHP
1. Paradigmas de Linguagens de
Programação
Linguagem - PHP
André Nakamura
Andrey Menezes
Fábio Leal
Jonathan Brilhante
2. Agenda
• Introdução
• Valores e Tipos
• Armazenamento
• Associações
• Abstrações
• Unidades de Programa
• Sistemas de Tipos
• Sequenciadores
• Concorrência
• Conclusão
3. Introdução
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
4. O que é?
• "PHP is a widely-used general-purpose scripting language that is
especially suited for Web development and can be embedded into
HTML". (php.net)
• Linguagem de script paradigma híbrido (Orientado a Objetos +
Imperativo).
• Desenvolvimento Web.
• Linguagem pertencente à 4ª
geração de LP's ("Boom" da Web).
Rasmus Lerdof
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
5. Sintaxe e Semântica
• Sintaxe descrita pelo meta-modelo fornecido pelo projeto
"PHP_UML", mantido pela PEAR.
• Case sensitive para variáveis.
• Case Insensitive para keywords da linguagem.
• Semântica Operacional.
• A Semântica operacional descreve como um programa válido é
interpretado como uma sequência de passos computacionais.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
6. Processador da Linguagem
• Interpretador da linguagem (PHP CGI).
• Temos também a opção de ir executando um programa
(interpretando comandos) através de um "shell", como na
linguagem Python (PHP CLI).
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
7. IDE
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
8. Ambiente de Execução
• PHP necessita de um Servidor Web para
disponibilizar suas aplicações online.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
9. ...Um pouco mais sobre PHP...
• "Enquanto .NET e Java brigam, fazendo muito barulho... PHP se
mantém como a tecnologia número 1 da Web." (Felipe Ribeiro)
• Linguagem é limitada?
• Cloud Computing
• SaaS
• SOA
• Web Services
Quem Usa?
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
10. Vamos, então, aos conceitos!
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
11. Valores e Tipos
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
12. Valores & Tipos
• Valores suportados por PHP: • Tipos suportados por PHP:
• Arrays • Primitivos
• Inteiros • Compostos
• Reais
• Objetos
• Booleans
• Strings
• Abstrações de funções e
procedimentos
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
13. Valores
Abstração de Função
Reais
Array Objeto
Abstrações de funções e procedimentos são valores de
segunda classe em PHP.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
14. Tipos Primitivos
• Os tipos primitivos em PHP são:
• Integer: Representação binária na memória
• Float: Difere de double apenas no tamanho do
intervalo dos reais
• Double: Números Reais.
• Boolean: Dois valores possíveis, True ou False
• Strings são tratados como arrays de caracteres!
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
15. Tipos Compostos
• Produto cartesiano: Integer X String
Valor do tipo Integer
Valor do tipo String
Representação utilizando um objeto
com dois atributos distintos.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
16. Tipos Compostos
• União disjunta: Pode ser simulada através de uma herança.
A classe Peca
"guarda um
marcador" de
PecaAbstrata, pois
herda da mesma.
• Quando tivermos uma instância de Peca, a mesma poderá
ser tratada como Peca ou como PecaAbstrata.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
17. Tipos Compostos
• Mapeamentos podem ocorrer através de Arrays ou de
Funções.
Mapeamento através de Mapeamento através de
uma função um array bidimensional
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
18. Tipos Compostos
• Conjunto Potência não ocorre em PHP.
• Recursivo: Um exemplo é uma classe com atributo de seu
próprio tipo.
Atributo recursivo é setado para
um valor de seu próprio tipo
Representação utilizando uma classe
com atributos de seu próprio tipo
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
19. Checagem de tipos
• PHP é uma linguagem dinamicamente e fracamente tipada,
e sua checagem de tipos também é dinâmica.
Não é preciso declarar tipos de variáveis, o interpretador tentará realizar
qualquer conversão entre tipos, ou como no caso do exemplo acima, recuperar o
tipo de uma variável
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
20. Equivalência de Tipos
• PHP adota a equivalência de nome na checagem de tipos.
• A equivalência estrutural de tipos não é suportada
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
21. Princípio da completude de tipo
• PHP viola o princípio da completude de tipo, pois uma
construção de um arquivo permanente é limitada. Para
lidarmos com arquivos persistentes é necessário que
trabalhemos com o tipo "File".
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
22. Armazenamento
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
23. Variáveis e Atualização
• Os valores armazenáveis em PHP são apenas os primitivos
(Integer, Float, Double, Boolean).
• Variáveis Temporárias: Todas as variáveis exceto as do tipo File.
• Variáveis Persistentes: São do tipo "File" em PHP.
Variável do tipo File
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
24. Variáveis e Atualização
• Atualização Seletiva é suportada por PHP.
Atualização Seletiva.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
25. Variáveis e Atualização
• Atualização Total ocorre em PHP.
Atualização total
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
26. Arrays
• Em PHP arrays são do tipo Flexível.
Não definimos nada sobre o
array.
O conjunto de índice não é fixo, funciona
como uma "lista".
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
27. Semântica de Cópia x Semântica de
Referência
• Por default, semântica de cópia pra valores primitivos, os quais já
foram apresentados.
• Por default, semântica de Referência pra valores compostos, os
quais já foram apresentados.
• Podemos colocar o caractere & na definição de alguma variável e
essa assumirá semântica de referência.
Adotada a semântica de
referência para $z.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
28. Variáveis Locais e Globais
Variáveis
Locais
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
29. Variáveis Locais e Globais
• Variável Global.
Variáveis Globais
global, indicação do uso
das variáveis globais.
Resultado vai ser 3.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
30. Variáveis Heap
• Em PHP temos o New como inicializador de uma variável Heap.
• Podemos destruir uma variável com uso do unset().
Variável Heap
• Apontadores não são suportados por PHP, variáveis Heap são
acessadas através de sua referência.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
31. Tipos de Comandos
• Skip
• Atribuição
• Chamada de Procedimento
• Comando Sequencial
• Comando Colateral
• Comando Condicional
• Comando Iterativo
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
32. Skip
• Em PHP um Skip pode ser representado por um simples ";".
O ponto e vírgula
representa um skip.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
33. Atribuição
• PHP não dá suporte a atribuições múltiplas nem simultâneas.
• PHP só dá suporte a atribuições de um único modo: $var = valor;
• É permitida a atribuição com o açúcar sintático "+=".
Açúcar
Sintático
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
34. Chamada de Procedimentos
Chamada de Procedimento
procedimento
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
35. Comando Sequencial e Colateral
• Em PHP os comandos sequenciais são separados pelo " ; " e
executados um após o outro.
Comando 1
Comando 2
• Em PHP os comandos Colaterais não são suportados.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
36. Comando Condicional
• Uso do comando condicional em PHP.
O if vem seguido
de comandos.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
37. Comando IterativoDefinimos o número de
• Comando Iterativo Definido iterações.
• Comando Iterativo Indefinido
A iteração dura
enquanto a
condição for válida
não se define a
quantidade.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
38. Expressões com efeitos colaterais
• Em PHP temos expressões com efeitos colaterais.
Para retornar a expressão correspondente
temos que atualizar a variável $linha
como efeito colateral.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
39. Associações
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
40. Estrutura de blocos
• Estrutura de blocos aninhados: Característica predominante nas
linguagens mais recentes.
EXEMPLO
1
2
3
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
41. Escopo
• Presença de escopo com associação estática em PHP.
Variável de escopo Global
Função que imprime a $var.
Variável de escopo Local
Impressão da variável.
• O exemplo imprime o valor 2, pois na linha 6 há uma chamada ao
escopo global de $var. Se comentássemos essa linha, a saída seria 3.
• O corpo de um bloco é avaliado no ambiente que foi definido, e não
no ambiente do bloco que o chama.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
42. Visibilidade
• Visibilidade: Três tipos característicos de visibilidade (OO):
Private, Protected e Public.
Att. protegidos (herdáveis) Atributos públicos.
(Remove encapsulamento)
Atributos Privados da Classe
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
43. Visibilidade em blocos
• Visibilidade: Se temos uma variável declarada em um escopo mais "interno", essa
variável não estará visível a um bloco de escopo mais externo.
$Peca só será visível das linhas 262 a 266. Se tentarmos acessar essa
variável fora de seu escopo, PHP assume valor nulo para ela. (Tipagem)
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
44. Entidades Associáveis
• Em PHP podemos produzir associações através de Constantes, variáveis,
procedimentos, Funções e tipos.
"Jogador" estará associado a
uma classe, assim como
"cor" e "tipo" a variáveis
internas da classe.
Associamos ainda "play" a
um método da classe.
• Entidades associáveis em PHP: Valores primitivos, valores compostos, abstrações
de funções e procedimentos, variáveis, tipos...
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
45. Declarações
• Declarações em PHP: Definições, Declaração de tipo, de variáveis,
sequenciais e recursivas.
Definição de constantes em PHP.
Declaração
de um novo tipo
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
46. Declarações
• PHP não dá suporte a declarações colaterais. No entanto, suporta
declarações sequenciais e recursivas.
Declarações sequenciais.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
47. Declarações
• Declarações Recursivas podem ser obtidas através da declaração de
um Método Recursivo ou Objeto Recursivo.
Procedimento
recursivo
Classe com
atributo
"recursivo"
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
48. Comando Bloco
• Comandos Bloco são suportados por PHP.
Declarações necessárias para Método que executará o
executar o comando. comando (encapsulado).
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
49. Expressões Bloco
• Expressões Bloco são suportadas por PHP.
Declaração necessária para
Expressão final avaliada.
avaliar a expressão de
retorno.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
50. Princípio da Qualificação
• PHP não fere o princípio da qualificação, uma vez que podemos
realizar qualquer computação, inclusive a simples declaração de
uma variável, dentro de um bloco.
• Podemos realizar qualquer computação dentro de um bloco.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
51. Abstrações
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
52. Abstração de Função
• PHP suporta abstrações de funções.
• Quando declarando, usamos da keyword "function" para
especificar o corpo e da keyword "return" para especificar o
retorno.
Parâmetros
Uso de uma abstração de função
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
53. Abstração de Procedimento
• PHP suporta abstrações de procedimentos.
• É dado de forma similar às abstrações de funções , declarando-se
com o uso da keyword "function". A diferença excêncial deve-se
ao fato que não deve haver "return".
Uso de uma abstração de procedimento
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
54. Parâmetros
• PHP dá suporte a funções de alta ordem.
• Passagem de parâmetros por cópia ou referência. Para
especificar o uso da referência , usamos "&".
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
55. Parâmetros
• Para passagem de parâmetro por cópia, PHP assume a semântica
de cópia valor.
Output
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
56. Ordem de Avaliação
• PHP utiliza Eager Evaluation como ordem de avaliação dos
parâmetros nas chamadas de suas abstrações de funções/
procedimentos
Alteramos manualmente o arquivo enquanto o programa está em "sleep".
Independente da alteração ainda será impresso: " Relatório de PLP! "
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
57. Princípio da Abstração
• PHP não viola o princípio da abstração , pois para qualquer
trecho de código que realize uma computação , podemos
encapsula-lo numa abstração de procedimento sem parâmetros.
• Podemos encapsular qualquer construção sintática em abstrações
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
58. Princípio da Correspondência
• PHP não viola o princípio da correspondência, uma vez que
existe uma declaração/definição de variável correspondente a
cada operação de passagem de parâmetro, seja ela por referência
(Constante ou Variável) e por cópia/valor .
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
59. Unidades de Programa
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
60. Pacotes
• Abstrações de Funções e procedimentos já foram detalhados na
seção de Abstrações.
• Em PHP não existe nenhuma keyword especifica para pacotes,
porém a existência dos mesmos pode ser simulada.
Importando
Classes extenas
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
61. Tipos abstratos de dados (TAD's)
• TAD's podem ser simulados através de Classes de PHP.
• Exemplo: Fila.
Exemplo de TAD por uma
Fila.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
62. Objetos e Classes
• Objetos e classes são peças fundamentais para o conceito de
orientação a objetos.
Construtor
Classe
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
63. Pacotes
• Uma curiosidade em PHP é o conceito de namespaces.
criando um namespace
Utilizando namespace
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
64. Unidades Genéricas
• PHP não dá suporte a unidades genéricas.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
65. Sistemas de Tipos
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
66. Monomorfismo & Chegagem de tipos
• PHP não é uma linguagem monomórfica.
Não há declaração de
tipos.
• Checagem de tipos dinâmica, realizada em tempo de execução.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
67. Sobrecarga
• PHP não dá suporte à sobrecarga dependente de contexto.
• PHP não dá suporte à sobrecarga independente de contexto.
Não há declaração de
parâmetros. (Impossível
realizar sobrecarga
independente de
contexto). Assim como a
dependente de contexto
p/ o tipo de retorno.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
68. Sobrecarga
• No entanto, pode haver sobrecarga de alguns métodos Built-in.
Método (Built-in) que pode ser sobrecarregado
de acordo com os seus parâmetros.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
69. Sobrescrita
• PHP dá suporte à sobrescrita.
Sobrescrita de método Built-in.
Método da
classe mãe.
Método
Sobrescrito.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
70. Polimorfismo
• PHP dá suporte ao polimorfismo paramétrico e por inclusão.
Método
Polimórfico.
Exemplo de Polimorfismo Paramétrico.
• O polimorfismo por inclusão ocorre de maneira semelhante. Os
métodos que são válidos para um supertipo também são válidos
para seus subtipos.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
71. Coerção
• Pelo fato de ser uma linguagem fracamente tipada, a coerção é
uma das características marcantes de PHP.
PHP converterá sem necessidade de
"cast" explícito.
• Existe, também, a função settype() para evitar a coerção.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
72. Subtipos & Herança
• PHP dá suporte a subtipos e Herança. Classes e Interfaces definem
tipos.
Definem novos
tipos.
Def. de tipo por Interface.
• Herança simples e implementação de interfaces múltipla.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
73. Sequenciadores
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
74. Desvios Incondicionais
• PHP suporta desvios incondicionais : Apartir da versão 5.3 . Usando a
sintaxe "goto" semelhante a outras linguagens.
Designação do Salto para Especificação do
o ponto "desvio". ponto "Desvio"
• Só podemos fazer desvios incondicionais dentro do escopo da abstração de
função/procedimento. (Não podemos ir para pontos mais externos do
programa).
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
75. Escapes
• PHP dá suporte a escapes através de "break" e "return". Existe
também a função exit(), que finaliza o script.
• "break" : Escape usado para
• quebrar o condicional switch
• e a execução de laços.
• "return" : Escape usado para
• saida do escopo de métodos.
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
76. Exceções
PHP dá suporte a exceções da seguinte forma:
• Lançar Exceções : " Throw "
"Lançando uma nova exceção que é um Objeto da classe
PecaException "
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
77. Exceções
• Tratamento de Exceções : "Try/Catch"
"Try : Exceuta um bloco esperando uma exceção"
"Catch: Intercepta a exceção especificada e trata "
• Criação de Exceções : "extends Exception"
"Para criar um novo tipo de exceção basta criar uma nova classe que herde de Exception"
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
78. Concorrência
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
79. Concorrência
• PHP não suporta concorrência nativamente. Foi
desenvolvida uma biblioteca, PCNTL (disponível apenas
em ambientes Unix), que simula algumas features de
concorrência. Algumass de suas funções são:
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
80. Conclusão
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
81. Campo Minado
http://gmf.ufcg.edu.br/~fabiosl/CampoMinado/Menu.php
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
82. Damas
http://gmf.ufcg.edu.br/~fabiosl/CampoMinado/Menu.php
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
83. Links Interessantes
• http://php.net/index.php - Site Oficial
• http://pear.php.net - Site de Módulos para PHP
• http://pear.php.net/package/php_uml - Metamodelo
• http://www.zend.com/en - Zend Studio IDE
• http://www.apache.org - Apache Server
• http://www.xoops.org - XOOPS Server
• http://php-pb.net - Lista de discussão de PHP da PB
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão
84. Dúvidas?
Introdução Valores e Tipos Armazenamento Associações
Abstrações Unidades de Programa Sistemas de Tipos
Sequenciadores Concorrência Conclusão