Ola Mundo!! PHP: fevereiro 2013

PHP.BR

Recomende aos seus amigos do Facebook

quinta-feira, 28 de fevereiro de 2013

A VENDA Construindo Aplicações Web com PHP e MySQL

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


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).