O documento apresenta uma introdução à história e conceitos básicos da linguagem PHP, desde sua criação por Rasmus Lerdorf em 1995 até os principais recursos atuais. É descrito o desenvolvimento do PHP ao longo dos anos, citando seus criadores originais e as principais versões lançadas. Também são apresentados tópicos como sintaxe básica, tipos de dados, estruturas de controle, orientação a objetos, programação para web com superglobais e interação com banco de dados MySQL.
2. História do PHP
Rasmus Lerdorf
1995 - Personal Home Page Tools (1.0)
1997 - PHP/FI (2.0) 50.000 Domínios
“O Criador”
Atualmente trabalha no Yahoo!
3. História do PHP
Andi Gutmans Zeev Suraski
nd + Ze = Zend
1998 – PHP 3.0
2000 – PHP 4.0 Zend Engine
PHP Hipertext Preprocessor
10% dos Domínios da Web
20% dos Domínios da Web
2004 – PHP 5.0
Hoje – PHP 5.3.3
8. PHP Embutido no HTML
<html>
<head>
<title>Que dia é hoje?</title>
</head>
<body>
<h1>Hoje é <?php echo date('d/m/Y');?>.</h1>
</body>
</html>
9. Sintaxe
<?php
//Standard Tag
?>
<?
//Short Tag
?>
<script language="php">
//Script Tag
</script>
<%
//ASP Tag
%>
//Comentário de 1 linha
#Comentário de 1 linha
/*
Comentário de Múltiplas linhas
*/
/**
* Comentário de Documentação
*
* @author Evandro Balmant
*/
PHP Tags Comentários
10. Tipos de Dados e Variáveis
boolean true ou false
int Números Inteiros
float Números Reais
string Caracteres
<?php
$var = true;
$var = 123;
$var = 32.1;
$var = "Brasil";
?>
15. Operadores de Atribuição
Atribuição simples $a = 2;
Atribuição com adição $a += 3;
Atribuição com subtração $a -= 4;
Atribuição com multiplicação $a *= 5;
Atribuição com divisão $a /= 6;
Atribuição com módulo $a %= 7;
16. Operadores Lógicos
E / AND if($a > 2 && $a < 5){...}
if(($a > 2) AND ($a < 5)){...}
OU / OR if($x == “adm” || $x == “root” ){...}
if(($x == “adm”) OR ($x == “root” )){...}
Negação $var = false;
echo !$var;
17. Operadores de Comparação
Equivalência if($a == true){...}
if($b == 5){...}
Diferente if($x != $y){...}
if($login != “admin”){...}
Maior if($a > 10){...}
Menor if($b < 10){...}
Maior ou Igual if($a >= 5){...}
Menor ou Igual if($b <= 5){...}
18. Estrutura de Controle - If
<?php
// Se...
if($condicao == true){
//Executa se a condição for verdadeira
}
// Se... / Senão...
if($condicao == false){
//Não executa
}else {
//Executa
}
?>
19. Estrutura de Controle - Switch
<?php
// Escolha...
switch($valor){
case ‘x’:
//Faz x...
break;
case ‘y’:
//Faz y...
break;
default:
//Outro caso, faz ...
}
?>
20. Estrutura de Repetição - For
<?php
// Para...
for($i = 0; $i < 5; $i++)
{
/**
* Executa enquanto a condição
* for verdadeira
*/
}
?>
21. Estrutura de Repetição - While
<?php
// Enquanto...
while($condicao == true)
{
/**
* Executa enquanto a condição
* for verdadeira
*/
}
?>
22. Estrutura de Repetição – Do, While
<?php
// Faça, e Enquanto...
do
{
//Executa pelo menos 1 vez
} while($condicao == true)
?>
26. Orientação a Objetos - Classe
<?php
class Carro {
private $modelo; //Atributo/Propriedade
public function setModelo($modelo) {
//Atribuir o valor do parâmetro na propriedade
$this->modelo = $modelo;
}
public function getModelo() {
//Retorna o valor da Propriedade
return $this->modelo;
}
}
?>
27. Orientação a Objetos - Instância
<?php
//Instância do Objeto
$carro = new Carro();
//Chamar método parrando parâmetro
$carro->setModelo(“Chevete Tubarão”);
//Recuperando valor da propriedade
echo $carro->getModelo();
?>
28. Orientação a Objetos - Construtor
<?php
class Carro {
private $modelo; //Atributo/Propriedade
public function __construct($modelo) {
//Atribuir o valor do parâmetro na propriedade
$this->modelo = $modelo;
}
}
$carro = new Carro(”Fuscão Preto”);
?>
29. Orientação a Objetos – Herança
<?php
class Automovel {
private $rodas; //Atributo/Propriedade
public function setQtdRodas($qtdRodas) {
$this->rodas = $qtdRodas;
}
public function getQtdRodas() {
return $this->rodas;
}
}
class Triciclo extends Automovel {
public function __construct($qtdRodas) {
$this->setQtdRodas($qtdRodas);
}
}
$carro = new Triciclo(3);
?>
30. Orientação a Objetos – Métodos estáticos
<?php
class Util
{
static public function dobra($num) {
return $num * 2;
}
}
echo Util::dobra(5); //Escreve 10
?>
31. Orientação a Objetos – Propriedades estáticas
<?php
class Util
{
static $num;
static public function somaNum($somar) {
self::$num += $somar; //Atribui
somando
}
}
Util::$num = 100; //Define um valor na propriedade
Util::somaNum(50); //Chamando método estático
echo Util::$num; //Imprime 150
?>