Operadores – Parte I

Como o próprio nome já diz. operadores são os responsáveis por operações. Existem muitos tipos de operações em PHP. Os mais usados são:

  • Operadores de atribuição – Para atribuir dados a variáveis.
  • Operadores aritméticos – Para a execução de funções básicas matemáticas.
  • Operadores de String – para juntar strings.
  • Operadores de Comparações – para comparar dados.
  • Operadores Lógicos – Para executar operações lógicas em valores booleanos.

Além desses o PHP também fornece:

  • Operadores de Bits – Para manipular Bits usando a matemática booleana.
  • Operadores de controle do erro – Para suprimir erros.
  • Operadores de execução – Para executar comandos de sistemas.
  • Operadores de incremento e decremento – Para incrementar e decrementar valores numéricos.
  • Operadores de tipo – Para identificar objetos.

OBS: Na maioria das vezes as operações são binárias o que significa que existem dois operandos. Todas as operações binárias usam a notação em que o operador está entre seus operandos (por exemplo: 2 + 2).

Constantes

Ao contrário de variáveis, constantes como o próprio nome já diz refere-se a uma definição de valores que não serão mudados. Constantes podem ser acessados de qualquer parte dentro do script PHP, contudo, só podem receber valores escalares. Assim como variáveis, constantes são case-sensitive ( diferencia maiúsculas de minúsculas). É considerada uma boa prática para definir uma constante o uso em caixa alto.

Veja um exemplo de constantes abaixo:

define(’EMAIL’, ’teste@php.net’); // Nome valido
echo EMAIL; // exibe ’teste@php.net’

define(’USE_XML’, true);
if (USE_XML) { } // Retorna o valor true

define(’1CONSTANTE’, ’algum valor’); // nome invalido

Variáveis

Variáveis

Variáveis são recipientes de armazenamentos de dados temporários. Em php, uma variável pode conter qualquer tipo de dados, tais como, por exemplo, strings, inteiros, números de ponto flutuante, objetos e arrays. Php não é fortemente tipado, o que significa que ele irá implicitamente alterar o tipo de uma variável conforme necessário, dependendo da operação a ser realizada em seu valor.

Variáveis php são identificadas por um sinal de dólar $, seguido por um identificador. Variáveis devem ter seu identificador usando apenas letras (az, AZ), números ou o caractere sublinhado. Os nomes de variáveis devem iniciar por letras ou sublinhado, esses são apenas alguns dos identificadores case-sensitive (diferencia maiúsculas de minúsculas). Alguns exemplos abaixo:

$nome = ’valido’; // Variável valida

$_nome = ’valido’; // Variável valida

$1nome = ’invalido’; // Variável invalida, iniciada com um número.

Variável de variáveis

Em PHP, também é possível criar as chamadas variável de variáveis. Essa é uma variável cujo nome está contido em outra variável. Por exemplo:

$nome = ’valor1’;

$$nome = ’valor2’;

echo $valor1;

// será exibido na tela ’valor2’

Como você pode ver, neste exemplo, começamos a criar uma variável que contém a string valor1. Em seguida, nós usamos a sintaxe especial $$nome para indicar que queremos que interprete o dado da variável $nome como uma nova variável, assim a nova variável $valor1, será impressa na tela normalmente.

Devido à disponibilidade de variáveis de variáveis, que é efetivamente possível a criação de variáveis cujos nomes não seguem as limitações listadas acima. Também é possível definir o nome entre parênteses:

$nome = ’123’;

/* 123 é o nome da sua variável, números seria normalmente invalidos. */

$$nome = ’456’;

// Agora, você atribui um valor

echo ${’123’};

// Por fim, usando chaves você terá na tela ’456’

OBS: Variável de variáveis é uma ferramenta muito poderosa, e deve ser usada com extremo cuidado, porque o seu código é de difícil compreensão e de documentação, mas também, porque o seu uso inadequado pode levar a algumas importantes questões de segurança.

Uma técnica semelhante a variáveis de Variáveis também podem ser usadas para acessar nomes de funções dentro de uma variável:

function minhaFuncao() {

echo ’ minhaFuncao!’;

}

$f = ’ minhaFuncao’;

$f(); // irá chamar a função minhaFuncao();

Claramente, esta técnica deve ser utilizada com tanto cuidado como variáveis de variáveis, podendo assim ter varias oportunidades de erros e questões de seguranças bastante significativos.

Determinando se uma variável existe

Um dos pontos negativos de como php lida com variáveis é que não há nenhuma maneira de garantir que qualquer uma delas irá existir em qualquer ponto na execução de um script. Isso pode introduzir no seu sistema uma serie de problemas. Para minimizar o problema você pode utilizar o construtor especial isset():

echo isset ($x);

Uma chamada para o isset() irá retornar true se uma variável existe e tiver o valor diferente de NULL.

Tipos de Dados

Tipos de dados

PHP suporta diferentes tipos de dados, porem eles são divididos em duas categorias escalar e composto.

Um valor escalar contem somente um valor de cada vez. PHP suporta quatro tipos escalares:

boolean

Um valor que possa somente ser verdadeiro ou falso.

int

Um numero de valor inteiro.

float

Um valor de ponto flutuante.

string

Uma coleção de dados binários.

Valores numéricos

PHP reconhece dois tipos de números, os inteiros e de valor ponto flutuante. O tipo de dados interno é usado para representar inteiros assinados (o significado que os números positivos e negativos podem ser expressados com ele). Os números podem ser declarados usando diversas notações diferentes:

Decimal

10; -11; 1452

Notação decimal padrão. Note que não é necessário ter separador de milhar, na verdade, é permitido.

Octal

0666, 0100

Notação octal, identificado pelo seu zero à esquerda
e utilizado principalmente para expressar UNIX-estilo de permissões de acesso.

Hexadecimal

0×123; 0XFF; -0×100

Notação base-16, veja que há dígitos hexadecimais e 0x são o prefixo principal e são case-insensitive, ou seja, podem ser escritos na forma maiúscula ou minúscula.

OBS: É importante você está bem ciente das diferentes notações, em particular, números octal que pode facilmente ser confundido com os números decimais e pode conduzir a algumas conseqüências.

Os números de pontos flutuantes (chamados também flutuadores e, às vezes, dobros) são os números que têm um componente fracionário; como inteiros, são assinados também. PHP suporta duas notações diferentes para expressá-las:

Decimal

0.12; 1234.43; -.123

Notação decimal tradicional.

Exponencial

2E7, 1.2e2

Exponencial de um conjunto de notação de dígitos significativos, seguido pelo
“E” que é case-insensitive, ou seja, podem ser escritos na forma maiúscula ou minúscula, seguido também de um exponente. O número resultante é expressado multiplicou por dez ao poder do exponente, para o exemplo, 1e2 iguais 100.

Há algumas coisas importantes de que você necessita estar sabendo ao tratar dos números. Primeiramente, a precisão e a escala de ambos os tipos varia de acordo com a plataforma na qual o seu script será executado. Para o exemplo, as plataformas 64-bit podem, dependendo de como PHP foi compilado, ser capazes de representar uma escala mais larga de números do inteiro do que plataformas 32-bit. O que é ruim, PHP não segue excessos, de modo que o resultado de uma operação aparentemente simples como uma adição possa ter conseqüências catastróficas na confiabilidade de sua aplicação.

Mais importante ainda, você necessita estar ciente que o tipo de dados de pontos flutuantes não é sempre capaz de representar números na maneira que você espera. Considere, o exemplo desta declaração muito simples:

echo (int) ((0.1 + 0.7) * 10);

Você esperaria que a expressão ((0.1 + 0.7) * 10) retornaria 8 (e, no fato, se você o imprimisse para fora sem a conversão do inteiro ). Entretanto, a indicação acima imprime 7. Isto acontece porque o resultado desta expressão aritmética simples é armazenado internamente como 7.999999 em vez de 8; quando o valor é convertido a interno, PHP trunca simplesmente afastado a parte fracionária, tendo por resultado um erro significativo (12.5%, para ser exato).

A lição que você precisa tirar de tudo isso é simples: saiba as limitações dos tipos de dados numéricos, e planejar em torno deles. Sempre que a precisão de cálculo é um fator relevante a funcionalidade de sua aplicação, você deve considerar usar as funções de precisão arbitrárias fornecidas pela extensão de BCMath (você pode a procurar por isso no seu manual de PHP) em vez de usar os tipos de dados internos do PHP.

Strings

Na cabeça de muitos programadores, strings são equivalentes a textos. Enquanto em algumas linguagens isto é, na verdade, o que acontece, em muitos outros (incluindo o PHP), a string é um dado muito limitado. Strings são na verdade uma coleção de dados binários podendo assim ser um texto, mas também pode ser o conteúdo de um arquivo de imagem, uma planilha eletrônica, ou mesmo uma gravação musical.

PHP fornece muitas funcionalidades para string, e estaremos falando sobre elas mais tarde.

Booleans

Um valor booleano só pode conter dois valores: verdadeiro ou falso. De uma maneira geral, Booleans são utilizados como base de operações lógicas, que são discutidas posteriormente.

Quando converter dados para o tipo booleano, várias regras especiais são aplicáveis:

  • Um número (ou inteiro ou de ponto flutuante) torna-se convertido em um Booleano falso se o valor original é zero, e verdade de outra forma.
  • Uma string é convertida em falso somente se ela estiver vazia ou se ele contém o único 0. Se ele contém quaisquer outros dados, até mesmo vários zeros, são convertidos para verdadeiro.
  • Quando convertida para um número ou uma string, um Booleano 1 passa a ser verdadeiro, e 0 contrário.

Tipos De Dados Compostos

Além ao tipo de dados escalar que nós examinamos, PHP suporta dois tipos de dados compostos chamados porque são essencialmente recipientes de outros dados:

  • Arrays são recipientes de dados de elementos ordenados; um array pode ser usado para armazenar e recuperar qualquer outro tipo de dados, incluindo números, valores booleanos, strings, objetos e até mesmo outras matrizes. Falaremos mais sobre arrays adiante.
  • Objetos são recipientes de ambos os dados e código. Eles formam a base da programação orientada a objetos, e também serão aprofundadas adiante.

Outros tipos de dados

Além dos tipos de dados que temos visto até agora, PHP define alguns tipos adicionais
que são utilizados em situações especiais:

  • NULL indica que uma variável não tem qualquer valor. A variável é considerada como NULL caso tenha sido atribuído o valor especial NULL, ou se ele ainda não tenha sido atribuído um valor, neste último caso, PHP poderá das um alerta de saída se você tentar usar a variável em uma expressão.
  • O tipo de dados resourse é usado para indicar os recursos externos que não são usados de forma nativa pelo PHP, mas que estejam no contexto de uma operação, por exemplo, manipulação de arquivos ou manipular imagens.

Conversão entre tipos de dados

PHP toma cuidado de converter tipos de dados transparentes quando uma referência é usada em uma expressão. Entretanto, é possível forçar a conversão de um valor a um tipo específico usando os tipos operadores da conversão. Estes são simplesmente o nome do tipo de dados que pretende converter que será colocada entre colchetes antes de uma expressão. Por exemplo:

$x = 10.88;

echo (int) $x; // Outputs 10

Anote que um valor não pode ser convertido a alguns tipos especiais; para o exemplo, você não pode converter nenhum valor ao resoruse, você pode, entretanto, converter um resourse a um numérico ou array de tipos de dados, em que o PHP retornará o ID numérico do resouse, ou a string resourse de identificação seguido pelo recurso ID.

Anatomia de um Script PHP

Anatomia de um script PHP

Todo PHP script é composto de declarações, como as funções, variáveis, atribuições,
dados de saída, as diretivas, e assim por diante. Salvo em muito poucos casos, cada uma dessas instruções devem ser encerradas com ponto e vírgula (;) assim como em C, Perl e Java Script.

Alguma_funcao();

$variavel = 100;

Comentários

Toda linguagem de programação possui formas de comentar o código, e com o php não é diferente. Vale lembrar que é uma boa pratica de programação comentar cada função, classe, método ou propriedade em seu código. Embora seja muito fácil achar códigos mal comentados ou praticamente sem comentários em códigos. Então quando for codificar lembre-se sempre que até você mesmo depois de alguns dias, meses ou anos poderá ter esquecido como programou tal função e será necessário ler e reler algumas vezes o código para entendê-lo.


Tal como acontece com tags, PHP dá-lhe múltiplas escolhas para os seus comentários:

// comentário simples de uma linha

# comentário simples de uma linha

/*

Comentário de varias linhas, comentário em bloco

*/

/**

* Exemplo de documentação de API

*

* @param string $bar

*/

function foo($bar) { }

Esse ultimo exemplo mostra como documentar seu código e com a regra descrita nos comentários, será possível gerar um PHPDOC de todo o sistema, semelhante ao JAVADOC.

Os comentários simples de uma linha, / / e #, podem ser encerrados através de uma nova linha (\ r, \ n ou \ r \ n) ou por acabar com o bloco php atual, usando a tag de fechamento?>.

Espaço em branco

PHP é whitespace-insensitive Isso significa que não há exigências para uso (ou não usar) um tipo específico de caracteres branco (ex.: guias, em vez de espaços), ou um determinado número de caracteres branco, exceto em alguns casos:

  • Você não pode ter nenhum espaço entre <? e php
  • Não pode romper uma palavra-chave (por exemplo: whi Le, fo r ou func tion)
  • Não pode romper nome de variáveis e funções (por exemplo: $var nome, function te ste())

Bloco de código

Um bloco de código é simplesmente uma série de declarações entre duas chaves:

{
/ / Alguns comentários
f () / / uma chamada de função
}

Blocos de código são úteis para a criação de grupos de script todas as linhas que devem ser executados em circunstâncias específicas, tais como uma chamada de função ou uma sentença condicional.

Blocos de código podem ser aninhados.

Construtor da linguagem

Talvez a mais comum delas seja a indicação do echo, que permite que você escreva dados de saída.

echo 10; // irá imprimir 10 na tela.

É importante compreender que o ECHO não é uma função e, como tal, não tem
um valor de retorno. Se você precisa de saída dados através de uma função, você pode usar print() em vez disso:


echo 10;
print (10);

Outra que é muito importante saber é die(), que é em si um apelido de exit(). Ela permite que você encerre o script e obtenha uma saída que poderá retornar uma string ou um valor numerico. As funções são, obviamente, um importante elemento da linguagem PHP. Como tal, falaremos mais adiante sobre elas.

Sintaxe

Antes de tudo, uma aplicação php é um pequeno conjunto de blocos básicos de construção. O php foi construído com a intenção de ser simples.

Sintaxe
A sintaxe php é fácil de ser entendida, apesar de ser derivada de muitas outras linguagens como C, PERL e JAVA apartir das ultimas adições de orientação a objeto.
Tags e Arquivos fontes
Arquivo php é concebido como processador de texto, com isso pode ser inserido direto em arquivos de texto, utilizando para isso tags especiais o interpretador irá então interpretar o texto fora das tags e executar os que se encontram dentro das tags.
Quatro tipos de tags estão disponíveis:

Tag padrão

<?Php

Código php

?>

Tag curta

<?

Código php

?>

Tag script

<script language=”php”>

Código php

</script>

Tag asp

<%

Código php

%>

A tag padrão é a melhor forma de abertura e fechamento de tag para se trabalhar com php, por deixar seu código mais portável e compatível, porque é garantida sua disponibilidade e não é desativado ao mudar o arquivo de configuração do php.
Porem a forma mais usada no mundo é a tag curta elas não tem o problema de conflito com cabeçalhos XML. Outra grande vantagem e uma das que mais uso, é a possibilidade da utilização de uma impressão direta <?=$variavel?> sem a necessidade da utilização do print.
A tag script foi inserida para que editores HTML que ignoraram o Java script , mas foram incapazes de lidar com a norma PHP tags também podia ignorar o código php.
Ainda não entendi a tag asp. Quem souber deixe comentários.
Você poderá usar qualquer um dos tipos de tags, sabendo que em alguns casos poderá ser necessário configurar o php.
OBS: Tag curta, tag script e tag asp são todos considerados precários e sua utilização é fortemente desencorajado.

Em Busca da “Zend PHP Yellow Pages”

Há alguns dias resolvi criar um blog para ajudar nos estudos em php, tenho interesse em tirar a certificação e com isso entrar na Zend PHP Yellow Pages. Tentarei postar de três a quatro vezes por semana e percorrer todo o conteúdo da prova. Em alguns momentos poderei estar falando dela também. Espero que gostem do blog e assim como eu um dia possam estar com o certificado em mãos.

Mais informações sobre o exame aqui.