PHP & MySQL
José Francisco [[email protected]]
Os slides originais são parte do material de cursos anteriores do curso de PHP,
ministrados por Sérgio Clemente. Com modificações!
Também possui a contribuição de Cleviton V. F. Monteiro.
Conteúdo didático é baseado em diversas fontes como: tutoriais, livros e o site
oficial de PHP.
Inspirado também em slides de Jobson Ronan, instrutor de Java Avançado do CITi.
Roteiro




Variáveis
Tipos
Arrays
Resource
Variáveis


Um espaço na memória para armazenar dados
São case sensitive.



i.e. $nome e $Nome são diferentes.
Começam com $ podem conter letras digitos e
sublinhados
O primeiro caractere não pode ser um número.
Regras de Nomenclatura



O primeiro caractere é uma letra ou um
sublinhado ‘_’.
O nome só pode conter caracteres alfa-numéricos
e sublinhados (a-Z, 0-9, _ )
Nome que contenham mais de uma palavra devese separar as palavras por um sublinhado ou por
letra maiúscula.

$nome_cliente ou $nomeCliente
Variáveis
$idade $_nome $i
$3idade $primeiro-nome

Em PHP não é necessário declarar o tipo de uma
variável antes de usá-la (Tipagem Dinâmica).
<?php
$str
$i =
$f =
$v =
?>
= "José"; // $str armazena o tipo string.
12; // $i armazena o tipo inteiro.
3.1415; // $f armazena o tipo ponto flutuante.
“3.1415"; // $v armazena o tipo string.
Variáveis
Tipo
Inteiro
Pontos Flutuante
Strings
Booleano
Descrição
Um inteiro é um número do conjunto
Z = {..., -2, -1, 0, 1, 2, ...}.
Números reais, como 4.12
Array
Objetos
Seqüência de caracteres
Um booleano expressa um valor de verdade. Ele
pode ser TRUE ou FALSE.
Representa coleções
Instancias de classes definidas.
Resource
NULL
Representa um recurso externo.
Representa uma variável sem valor.
Inteiro


Representam os números inteiros da matemática
Variam de -2.147.483.648 à 2.147.483.647
<?php
$a
$a
$a
$a
$a
?>
=
=
=
=
=
1; # número decimal
-2; # um número negativo
0123; # número octal (83 em decimal)
0xF; # número hexadecimal (15 em decimal)
7*12 + 6/3; # saída: 86
OBS: Caso ocorra overflow o Número de Ponto Flutuante é retornado.
Pontos Flutuantes


Possuem uma parte inteira e uma parte fracionária.
O tamanho depende da plataforma.
<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
?>

Cuidado o seguinte Script gera a saída 1.
<?php floor((0.1+0.7)*10) == 7 ?>
Strings



(1 byte por caractere): Não suporta diretamente
unicode.
Podem ser delimitadas por “” (aspas duplas), ‘’
(aspas simples) ou por `` (grave).
Cada uma das delimitações tem um propósito
específico.
Strings

Delimitado por aspas simples ‘’
 Variáveis internas não são expandidas.
<?php
$id = 12;
$query = ‘SELECT * FROM FUNCIONARIO WHERE ID=$id’;
echo($query);
?>
Saída
SELECT * FROM FUNCIONARIO WHERE ID=$id
Strings

Delimitadas por aspas duplas “”

As variáveis externas são expandidas.
<?php
$id = 12;
$query = "SELECT * FROM FUNCIONARIO WHERE ID=$id";
echo($query);
?>
Saída
SELECT * FROM FUNCIONARIO WHERE ID=12
Strings

Delimitadas por `` (acentos grave)

Executa o conteúdo como um comando do shell e
retorna sua saída.
<?php
$a = `time`;
echo $a;
?>
Saida:
Hora atual: 16:00:57,61 Digite a nova hora:
Strings

Caracteres especiais para string
Seqüência
\n
\r
\t
\\
\$
\’
\”
Significado
Nova linha
Retorno de carro
Tab horizontal
Barra invertida
Cifrão
Aspas simples
Aspas duplas
“
OK
OK
OK
OK
OK
ERRO
OK
‘
ERRO
ERRO
ERRO
ERRO
ERRO
OK
ERRO
Exercícios

Faça os exercícios 4 e 5
Strings



Seqüência de caracteres.
Acessando um caractere da string.
Coloca-se entre chaves o índice do caractere desejado
(começando em 0).
<?php
$str = "abc";
echo $str{1};
echo "<br>";
$str{1} = '2';
echo $str;
?>
Saída gerada:
b
a2c
Strings

Concatenação de Strings.
<?php
$str1 = "ab";
$str2 = "c";
$concat = $str1 . $str2;
?>
Strings

Conversão de strings em inteiros

Tenta converter da esquerda para a direita, se não
conseguir evolui para 0.
<?php
$foo
$foo
$foo
$foo
$foo
$foo
$foo
?>
=
=
=
=
=
=
=
1 + "10.5";
// $foo é float (11.5)
1 + "-1.3e3";
// $foo é float (-1299)
1 + "bob-1.3e3"; // $foo é integer (1)
1 + "bob3";
// $foo é integer (1)
1 + "10 Small Pigs";
// $foo é integer (11)
4 + "10.2 Little Piggies"; //$foo é float(14.2)
"10.0 pigs " + 1;
// $foo é float (11)
Booleano


Representam os conceitos de verdadeiro e falso.
Use as palavras chave TRUE ou FALSE. Ambas são
insensitivas ao caso.
<?php
$foo = True; // assimila o valor TRUE para $foo
?>
OBS: Assim como na linguagem C, em php o 0 é denotado para falso
e true para qualquer numero diferente de 0. Portanto:
$b1 = -1; //true
$b2 = 0; //false
$b3 = 2; // true
Booleano

Normalmente utilizado em estruturas de controle
junto com os operadores.
<?
$bool = 3 > 0; // $bool = TRUE;
if ($bool == True){ //poderia ser if($bool){..
echo ("Entrou no if!");
} else {
echo ("Entrou no else!");
}
?>
Arrays



Encapsula uma coleção de dados.
Podem ser indexados por números inteiros ou
strings.
Quando utilizar:



Para evitar ter muitas variáveis similares.
Quando há necessidade de ordenação dos elementos
Entre outros
Arrays

Há três diferentes tipos de arrays:



Numéricos: Um array com uma chave numérica
Associativo: Um array cuja chave difere de um valor
numérico (string).
Multidimensional: Um array que possui um ou mais
arrays como elemento.
Arrays


Não é necessário inicializar arrays.
Adota o conceito de array dinâmico.
<?php
$produtos[] = "Pneu";
/* Equivalente a
$produtos[0] = "Pneu“ e implicitamente o array
foi criado */
$produtos[1] = "Oleo";
$produtos[] = "Luva";
?>
Conteúdo do Array:
Indexação - Numéricos

Os arrays são indexados por números:
<?php
$produtos[] = “Carro";
$produtos[12] = “Pneus";
$produtos[2] = “Motor";
$produtos[] = “Rodas";
?>
Conteúdo do Array:
Arrays - Construtor

Utilizado para criar arrays:
array( [chave =>] valor
, ...
);
Chave: int ou string
Valor: pode ser qualquer coisa
[ ]  opcional.
Arrays

Arrays Associativos
<?php
$precos = array( "Pneu"=>100, "Oleo"=>10, "Luva"=>4);
$precos["Capo"] = 300;
echo $precos["Oleo"];
?>
Conteúdo do array:
Array - Multidimensionais



São arrays que possuem como elementos outros
arrays.
Conceito importante em PHP.
Presente nos meios de submissão de Formulários
HTTP (POST, GET, FILE, etc).
Array
$familias = array(
"Silva"=>array(
"Renata",
"Kelly",
"Willian"
),
"Lima"=>array(
"Adriana",
"Thiago"
),
"Barbosa"=>array(
"Luana"
)
);

Exemplo:
Conteúdo do array:
Arrays

Ordenando Arrays.
<?php
$produtos = array("Pneu", "Oleo", "Luvas");
$precos = array( "Pneu"=>100, "Oleo"=>10, "Luva"=>41);
sort($produtos); // ordena pelo valor
asort($precos); // ordena por preco (valor)
ksort($precos); // ordena por nome (chave,índice)
?>
Array

Exemplo final:
<?php
$a = array("José", 4=>"Joaquim", "Maria");
$b = array("Id2" => "José", "Id10" => "Maria");
?>

A memória fica mapeada como:
Array

Manipulando Arrays: (exemplo mais elaborado)
<?php
// Criando um array normal
$array = array(1, 2, 3, 4, 5);
print_r($array);
unset($array[1]);
print_r($array);
// Acrescentando um item (note que a chave é 5, em vez de zero
// como voce pode ter esperado).
$array[] = 6;
print_r($array);
// Reindexando:
$array = array_values($array);
$array[] = 7;
print_r($array);
?>
Resource


Representa um recurso “externo”.
Por exemplo:




Uma conexão com mysql.
Um arquivo aberto.
...
Exemplo:
<?php
$handle = fopen (“curso.txt", "r");
?>
http://br.php.net/manual/pt_BR/resource.php
NULL

Representa uma variável sem valor ou não inicializada.
Não é Case Sensitive (null == Null).

Exemplo:

<?php
$raiz_quadrada = ($i > 0) ? sqrt($i) : null;
?>
Variáveis de variáveis

O conteúdo de uma variável pode virar o nome de uma
variável.
<?php
$a = "gambiarra";
$$a = "Isso é seboso!";
echo $gambiarra;
?>
Referências

Exemplos de códigos e tutoriais:
http://www.phpbuilder.com/

Site oficial: http://www.php.net

Exemplo de códigos: http://www.scriptbrasil.com.br/

W3 Schools: http://www.w3schools.com
Dúvidas??
PHP & MySQL
José Francisco [[email protected]]
Download

Java no “Estado da Arte”