Aprenda a utilizar o PHP e o MySQL por meio de exemplos práticos. Partindo do básico, o livro ensina desde a linguagem de programação e a modelagem de banco de dados até seu uso avançado, por meio de construção de exemplos.
PRECO: R$ 50,00
CONTATO
brunaribeiro.br@hotmail.com
Recomende aos seus amigos do Facebook
quinta-feira, 28 de fevereiro de 2013
SWITCH
O comando switch
atua de maneira semelhante a uma série de comandos if
na mesma expressão. Freqüentemente o programador pode querer
comparar uma variável com diversos valores, e executar um código
diferente a depender de qual valor é igual ao da variável. Quando
isso for necessário, deve-se usar o comando switch.
O exemplo seguinte mostra dois trechos de código que fazem a mesma
coisa, sendo que o primeiro utiliza uma série de if’s
e o segundo utiliza switch:
if
($i == 0)
print
“i é igual a zero”;
elseif
($i == 1)
print
“i é igual a um”;
elseif
($i == 2)
print
“i é igual a dois”;
switch
($i) {
case
0:
print
“i é igual a zero”;
break;
case
1:
print
“i é igual a um”;
break;
case
2:
print
“i é igual a dois”;
break;
}
É importante compreender o funcionamento do switch
para não cometer enganos. O comando switch
testa linha a linha os cases encontrados, e a partir do momento que
encontra um valor igual ao da variável testada, passa a executar
todos os comandos seguintes, mesmo os que fazem parte de outro teste,
até o fim do bloco. por isso usa-se o comando break,
quebrando o fluxo e fazendo com que o código seja executado da
maneira desejada. Veremos mais sobre o break
mais adiante. Veja o exemplo:
switch
($i) {
case
0:
print
“i é igual a zero”;
case
1:
print
“i é igual a um”;
case
2:
print
“i é igual a dois”;
}
No exemplo acima, se $i for igual a zero, os três
comandos “print” serão executados. Se $i for igual a 1, os dois
últimos “print” serão executados. O comando só funcionará da
maneira desejada se $i for igual a 2.
Em outras linguagens que implementam o comando switch,
ou similar, os valores a serem testados só podem ser do tipo
inteiro. Em PHP é permitido usar valores do tipo string como
elementos de teste do comando switch. O exemplo abaixo funciona
perfeitamente:
switch
($s) {
case
“casa”:
print
“A casa é amarela”;
case
“arvore”:
print
“a árvore é bonita”;
case
“lâmpada”:
print
“João apagou a lâmpada”;
}
Comandos de Seleção
Também chamados de condicionais, os comandos de seleção
permitem executar comandos ou blocos de comandos com base em testes
feitos durante a execução.
if
O mais trivial dos comandos condicionais é o if.
Ele testa a condição e executa o comando indicado se o resultado
for true
(valor diferente de zero). Ele possui duas sintaxes:
if
(expressão)
comando;
if
(expressão){
comando1;
comando2;
comando3;
comando4;
comando5;
comando1;
comando2;
comando3;
}
if
(expressão):
comando;
.
. .
comando;
endif;
Para incluir mais de um comando no if
da primeira sintaxe, é preciso utilizar um bloco, demarcado por
chaves.
O else
é um complemento opcional para o if.
Se utilizado, o comando será executado se a expressão retornar o
valor false
(zero). Suas duas sintaxes são:
if
(expressão)
comando;
else
comando;
if
(expressão):
comando;
.
. .
comando;
else
comando;
.
. .
comando;
endif;
A seguir, temos um exemplo do comando if
utilizado com else:
if
($a > $b)
$maior
= $a;
else
$maior
= $b;
O exemplo acima coloca em $maior o maior valor entre $a
e $b
Em determinadas situações é necessário fazer mais de
um teste, e executar condicionalmente diversos comandos ou blocos de
comandos. Para facilitar o entendimento de uma estrutura do tipo:
if
(expressao1)
comando1;
else
if
(expressao2)
comando2;
else
if
(expressao3)
comando3;
else
comando4;
foi criado o comando, também opcional elseif.
Ele tem a mesma função de um else
e um if
usados seqüencialmente, como no exemplo acima. Num mesmo if
podem ser utilizados diversos elseif’s,
ficando essa utilização a critério do programador, que deve zelar
pela legibilidade de seu script.
O comando elseif
também pode ser utilizado com dois tipos de sintaxe. Em resumo, a
sintaxe geral do comando if
fica das seguintes maneiras:
if
(expressao1)
comando;
[
elseif (expressao2)
comando;
]
[
else
comando;
]
if
(expressao1) :
comando;
.
. .
comando;
[
elseif (expressao2)
comando;
.
. .
comando;
]
[
else
comando;
.
. .
comando;
]
endif;
Estrutura de controle
As estruturas que veremos a seguir são comuns para as
linguagens de programação imperativas, bastando, portanto,
descrever a sintaxe de cada uma delas, resumindo o funcionamento.
Blocos
Um bloco consiste de vários comandos agrupados com o
objetivo de relacioná-los com determinado comando ou função. Em
comandos como if,
for,
while,
switch
e em declarações de funções blocos podem ser utilizados para
permitir que um comando faça parte do contexto desejado. Blocos em
PHP são delimitados pelos caracteres “{” e “}”. A utilização
dos delimitadores de bloco em uma parte qualquer do código não
relacionada com os comandos citados ou funções não produzirá
efeito algum, e será tratada normalmente pelo interpretador.
Exemplo:
if
($x == $y)
comando1;
comando2;
Para que comando2 esteja relacionado ao if é preciso
utilizar um bloco:
if
($x == $y){
comando1;
comando2;
}
quarta-feira, 27 de fevereiro de 2013
Nova Plataforma para Aplicações Java e PHP é Comercializada
Jelastic, plataforma em nuvem para aplicações Java, é oferecida no
modelo PaaS (Plataforma como Serviço) e suporta qualquer aplicação
baseada em Java sem a necessidade de se alterar nenhuma linha de código.
A Websolute, provedor de serviços de internet com foco em aplicações e
serviços para pequenos e médios negócios, acaba de anunciar o início da
comercialização da sua nova plataforma Jelastic, até então oferecida na
versão beta. Trata-se da primeira solução de hospedagem em nuvem do
mercado que suporta todas as modalidades de aplicações em Java, sejam
elas desenvolvidas para o mundo físico ou virtual, sem qualquer
exigência de mudanças no código da aplicação. Mundialmente, a plataforma
Jelastic vem despontando como opção ideal para rodar milhares de apps e
aplicações de negócios desenvolvidos por terceiros que precisam de
agilidade e estrutura robusta.
Na primeira fase da versão comercial, a Websolute oferece 30 dias de
trial para degustação da plataforma. Após esse prazo, a solução passa a
ser oferecida por meio de pacotes fechados, batizados de 'Cloudlet'. Uma
das vantagens do modelo está no custo por hora de utilização, que
inicia-se em apenas R$ 0,04.
As horas ociosas não são cobradas, e os cloudlets são totalmente
autoescaláveis. Isso significa que, se a memória não for suficiente para
rodar uma determinada aplicação, automaticamente, o sistema provisiona
um novo cloudlet que, igualmente, será tarifado apenas com base nas
horas realmente trabalhadas.
"Uma dos destaques da solução é a sua oferta no modelo PaaS (Plataforma
como Serviço), sem contar o benefício de não requerer programação
específica para lidar com ambientes em nuvem, tal como acontecia com as
primeiras gerações desse tipo de solução", afirma Luis Schedel, diretor
da Websolute.
Outra novidade da versão é o suporte também à linguagem PHP, além de
ser a única do gênero no mercado a rodar a plataforma de open source
mais utilizada no mundo para sistemas de e-commerce, o Magento.
Totalmente auto escalável, a nova plataforma é balanceada e não deixa
de rodar nenhum aplicativo devido a ocorrências como escassez de memória
RAM ou fadiga de CPU em momentos de pico de demanda. Em casos, assim, a
Jelastic provisiona os recursos de maneira inteligente, seguindo normas
de prioridade previamente definidas. Com isto, além da distribuição
adequada dos recursos, a solução equaciona os custos de tarifação de
acordo com o real uso da infraestrutura pela aplicação do cliente.
Ainda segundo Schedel, o custo-benefício do Jelastic se fortalece
justamente por sua característica híbrida - de rodar as aplicações tanto
em ambientes virtuais quanto físicos - o que favorece também a maior
disponibilidade dos recursos.
Outra funcionalidade da plataforma está em dispor de ferramentas para
acompanhar e evoluir o ciclo de vida das aplicações, gerenciando suas
mudanças e viabilizando intervenções mais objetivas por parte do
desenvolvedor.
Desenvolvedores Locais Já Aprovaram
Os depoimentos colhidos durante a prova de conceito da plataforma
corroboram as vantagens do modelo. Para Alexandre Graffitti, um dos
usuários que testaram a plataforma, o ponto forte do Jelastic é
justamente a simplicidade, já que o usuário só precisa se preocupar com a
programação, pois ela se autoadapta às condições da nuvem, sem serem
necessárias alterações ou atualizações.
Já para Daniel Setton, da empresa Lembreteria, que também participou
dos testes, facilidade é a melhor palavra para definir a Jelastic. A
solução, segundo ele, veio para facilitar a vida do desenvolvedor. "A
escala vertical é feita automaticamente quando necessário, o que impede a
queda do site, bem como a escala horizontal pode ser configurada em
poucos cliques, aliás, tudo pode ser feito em poucos cliques", declara.
E para concluir a primeira fase de depoimentos de usuários que testaram
a solução, Bruno Souza, diretor da Sociedade de Usuários da Tecnologia
Java (SouJava), confirma os principais benefícios já relatados pelos
outros usuários.
"Desenvolvedores Java estão acostumados com a liberdade de plataforma e
de fornecedores oferecida pela tecnologia, e a Jelastic, ao oferecer um
ambiente flexível e com datacenters independentes, provê uma
alternativa muito interessante para o desenvolvedor, que pode contar com
suporte e velocidades de um ambiente local, e com a possibilidade de
expandir para outros ambientes internacionais", finaliza.
"A prova de conceito realizada com a versão beta da plataforma há cerca
de três meses abrangeu toda a sorte de dificuldades nesse tipo de
hosting de aplicações. Os resultados não poderiam ter sido melhores, o
que posiciona a Jelastic no mesmo patamar das principais soluções do
gênero existentes no mercado. Estamos muito confiantes quanto ao sucesso
do produto", conclui Schedel.
A Plataforma Jelastic, versão comercial, já está disponível por um
período trial gratuito de 30 dias. Para experimentar, acesse
www.websolute.com.br
CONSTANTE int, define
Já foi visto anteriormente, mas tem-se uma melhor explicação utilizando Define, int, e true, para um melhor entendimento.
O PHP possui algumas constantes pré-definidas,
indicando a versão do PHP, o Sistema Operacional do servidor, o
arquivo em execução, e diversas outras informações. Para ter
acesso a todas as constantes pré-definidas, pode-se utilizar a
função phpinfo(),
que exibe uma tabela contendo todas as constantes pré-definidas,
assim como configurações da máquina, sistema operacional, servidor
http e versão do PHP instalada.
Definindo constantes
Para definir constantes utiliza-se a função define.
Uma vez definido, o valor de uma constante não poderá mais ser
alterado. Uma constante só pode conter valores escalares, ou seja,
não pode conter nem um array nem um objeto. A assinatura da função
define
é a seguinte:
int
define(string nome_da_constante, mixed valor);
A função retorna true
se for bem-sucedida. Veja um exemplo de sua utilização a seguir:
define
("pi", 3.1415926536);
$circunf
= 2*pi*$raio;
Função settype
Com a função settype
A função settype
converte uma variável para o tipo especificado, que pode ser
“integer”, “double”, “string”, “array” ou “object”.
Exemplo:
$php
= 15; // $php é integer
settype($php,double) //
$php é double
Cast
A sintaxe do typecast de PHP é semelhante ao C:
basta escrever o tipo entre parênteses antes do valor
Exemplo:
$php
= 15; // $php é integer (15)
$php
= (double) $php // $php é double (15.0)
$php
= 3.9 // $php é double (3.9)
$php
= (int) $php // $php é integer (3)
//
o valor decimal é truncado
Os tipos de cast permitidos são:
(int), (integer)
muda para integer;
(real), (double), (float)
muda para float;
(string) muda
para string;
(array) muda
para array;
(object) muda
para objeto.
Transformação de tipos
A transformação de tipos em PHP pode ser feita das
seguintes maneiras:
Coerções
Quando ocorrem determinadas operações (“+”, por
exemplo) entre dois valores de tipos diferentes, o PHP converte o
valor de um deles automaticamente (coerção). É interessante notar
que se o operando for uma variável, seu valor não será alterado.
O tipo para o qual os valores dos operandos serão
convertidos é determinado da seguinte forma: Se um dos operandos for
float,
o outro será convertido para
float, senão, se um deles for integer,
o outro será convertido para integer.
Exemplo:
$php
= “1”; // $php é a string “1”
$php
= $php + 1; // $php é o integer 2
$php
= $php + 3.7;// $php é o double 5.7
$php
= 1 + 1.5 // $php é o double 2.5
Como podemos notar, o PHP converte string
para integer
ou double
mantendo o valor. O sistema utilizado pelo PHP para converter de
strings para números
é o seguinte:
- É analisado o início da string. Se contiver um número, ele será avaliado. Senão, o valor será 0 (zero);
- O número pode conter um sinal no início (“+” ou “-“);
- Se a string contiver um ponto em sua parte numérica a ser analisada, ele será considerado, e o valor obtido será double;
- Se a string contiver um “e” ou “E” em sua parte numérica a ser analisada, o valor seguinte será considerado como expoente da base 10, e o valor obtido será double;
Exemplos:
$php
= 1 + “10.5”; // $php == 11.5
$php
= 1 + “-1.3e3”; // $php == -1299
$php
= 1 + “teste10.5”; // $php == 1
$php
= 1 + “10testes”; // $php == 11
$php
= 1 + " 10testes"; // $php == 11
$php
= 1 + "+ 10testes"; // $php == 1
Objetos
Um objeto pode ser inicializado utilizando o comando new
para instanciar uma classe para uma variável.
Exemplo:
class
teste {
function
nada() {
echo
“nada”;
}
}
$php
= new teste;
$php
-> nada();
O objeto teste com uma função vazia imprimindo a função, e instanciando uma variavel php recebendo um novo teste
Listas
As listas são utilizadas em PHP para realizar
atribuições múltiplas. Através de listas é possível atribuir
valores que estão num array para variáveis. Vejamos o exemplo:
Exemplo:
list($a,
$b, $c) = array(“a”, “b”, “c”);
O comando acima atribui valores às três variáveis
simultaneamente. É bom notar que só são atribuídos às variáveis
da lista os elementos do array que possuem índices inteiros e não
negativos. No exemplo acima as três atribuições foram bem
sucedidas porque ao inicializar um array sem especificar os índices
eles passam a ser inteiros, a partir do zero. Um fator importante é
que cada variável da lista possui um índice inteiro e ordinal,
iniciando com zero, que serve para determinar qual valor será
atribuído. No exemplo anterior temos $a com índice 0, $b com índice
1 e $c com índice 2. Vejamos um outro exemplo:
$arr
= array(1=>”um”,3=>”tres”,”a”=>”letraA”,2=>”dois);
list($a,$b,$c,$d)
= $arr;
Após a execução do código acima temos os seguintes
valores:
$a
== null
$b
== “um”
$c
== “dois”
$d
== “tres”
Devemos observar que à variável $a não foi atribuído
valor, pois no array não existe elemento com índice 0 (zero). Outro
detalhe importante é que o valor “tres” foi atribuído à
variável $d, e não a $b, pois seu índice é 3, o mesmo que $d na
lista. Por fim, vemos que o valor “letraA” não foi atribuído a
elemento algum da lista, pois seu índice não é inteiro.
Os índices da lista servem apenas como referência ao
interpretador PHP para realizar as atribuições, não podendo ser
acessados de maneira alguma pelo programador. De maneira diferente do
array, uma lista não pode ser atribuída a uma variável, servindo
apenas para fazer múltiplas atribuições através de um array.
terça-feira, 26 de fevereiro de 2013
Arrays
Arrays em PHP podem ser observados como mapeamentos ou
como vetores indexados. Mais precisamente, um valor do tipo array é
um dicionário onde os índices são as chaves de acesso. Vale
ressaltar que os índices podem ser valores de qualquer tipo e não
somente inteiros. Inclusive, se os índices forem todos inteiros,
estes não precisam formar um intervalo contínuo
Como a checagem de tipos em PHP é dinâmica, valores de
tipos diferentes podem ser usados como índices de array, assim como
os valores mapeados também podem ser de diversos tipos.
Exemplo:
<?
$cor[1]
= “vermelho”;
$cor[2]
= “verde”;
$cor[3]
= “azul”;
$cor[“teste”]
= 1;
?>
Equivalentemente,
pode-se escrever:
<?
$cor
= array(1 => “vermelho, 2 => “verde, 3 => “azul”,
“teste => 1);
?>
Detalhes
A tabela seguinte lista os caracteres de escape:
Sintaxe
|
Significado
|
\n
|
Nova
linha
|
\r
|
Retorno
de carro (semelhante a \n)
|
\t
|
Tabulação
horizontal
|
\\
|
A própria
barra ( \ )
|
\$
|
O símbolo
$
|
\’
|
Aspa
simples
|
\”
|
Aspa
dupla
|
Tipos Suportados
PHP suporta os seguintes tipos de dados:
- Inteiro
- Ponto flutuante
- String
- Array
- Objeto
PHP utiliza checagem de tipos dinâmica, ou seja, uma variável pode
conter valores de diferentes tipos em diferentes momentos da execução
do script. Por este motivo não é necessário declarar o tipo de uma
variável para usá-la. O interpretador PHP decidirá qual o tipo
daquela variável, verificando o conteúdo em tempo de execução.
Ainda assim, é permitido converter os valores de um tipo para outro
desejado, utilizando o typecasting ou a função settype
Inteiros (integer ou long)
Uma variável pode conter um valor inteiro com
atribuições que sigam as seguintes sintaxes:
$php
= 1234; # inteiro positivo na base decimal
$php
= -234; # inteiro negativo na base decimal
$php
= 0234; # inteiro na base octal-simbolizado pelo 0
#
equivale a 156 decimal
$php
= 0x34; # inteiro na base hexadecimal(simbolizado
#
pelo 0x) - equivale a 52 decimal.
A diferença entre inteiros simples e long
está no número de bytes utilizados para armazenar a variável. Como
a escolha é feita pelo interpretador PHP de maneira transparente
para o usuário, podemos afirmar que os tipos são iguais.
Números em Ponto Flutuante (double ou float)
Uma variável pode ter um valor em ponto flutuante com
atribuições que sigam as seguintes sintaxes:
$php
= 1.234;
$php
= 23e4; # equivale a 230.000
Strings
Strings podem ser atribuídas de duas maneiras:
a) utilizando aspas simples ( ' ) - Desta maneira, o
valor da variável será exatamente o texto contido entre as aspas
(com exceção de \\ e \' - ver tabela abaixo)
b) utilizando aspas duplas ( " ) - Desta maneira,
qualquer variável ou caracter de escape será expandido antes de ser
atribuído.
Exemplo:
<?
$teste
= "Brasil";
$php
= '---$teste--\n';
echo
"$php";
?>
A saída desse script será "---$teste--\n".
<?
$teste
= "Brasil";
$php
= "---$teste---\n";
echo
"$php";
?>
A saída desse script será "---Brasil--"
(com uma quebra de linha no final).
Assinar:
Postagens (Atom)