Expressões
   
    Expressões são os blocos de construção mais importantes do PHP. No PHP,
    quase tudo o que você escreve são expressões. A maneira mais simples e ainda
    mais precisa de definir uma expressão é "tudo o que tem um
    valor".
   
   
    As formas mais básicas de expressões são constantes e variáveis.
    Quando você digita $a = 5, você está atribuindo 5 dentro de
    $a. 5 obviamente
    tem o valor 5, ou em outras palavras 5 é uma expressão com o
    valor de 5 (nesse caso 5 é uma constante inteira).
   
   
    Depois desta atribuição, você pode esperar que o valor de $a seja 5
    também, assim se você escrever $b = $a, você pode esperar que ele se comporte
    da mesma forma que se você escrevesse $b = 5. Em outras palavras, $a é uma expressão com
    valor 5 também. Se tudo funcionou bem isto é
    exatamente o que aconteceu.
   
   
    Exemplos ligeiramente mais complexos para expressões são as funções. Por exemplo,
    considere a seguinte função:
    
   
   
    Assumindo que você está familiarizado com o conceito de funções (se não estiver,
    dê uma olhada no capítulo sobre funções), você pode assumir que digitar
    $c = foo() é essencialmente a mesma coisa que escrever
    $c = 5, e você está certo. Funções são expressões com o valor
    igual ao seu valor de retorno. Como foo()
    retorna 5, o valor da expressão 'foo()' é 5. Geralmente,
    as funções não retornam apenas um valor estático, mas computam algo.
   
   
    Claro, valores em PHP não tem que ser inteiros, e muito comumente
    eles não são. O PHP suporta quatro tipos de valores escalares: valores int
    (inteiros), valores de ponto flutuante (float), valores string
    (caracteres) e valores bool (booleano) (valores escalares são valores que
    você não pode partir em peças menores, diferentemente de arrays, por exemplo). O PHP também
    suporta dois tipos compostos (não escalar): arrays e objetos. Cada um desses
    valores podem ser definidos em uma variável ou retornados de uma função.
   
   
    O PHP leva as expressões muito além, da mesma maneira que muitas outras linguagens
    fazem. O PHP é uma linguagem orientada a expressões, no
    sentido de que quase tudo são expressões. Considere o
    exemplo com o qual já lidamos, $a = 5. É fácil ver que
    há dois valores envolvidos aqui, o valor da constante inteira
    5, e o valor de $a que está sendo atualizado para 5
    também. Mas a verdade é que há um valor adicional envolvido
    aqui, e que é o próprio valor da atribuição. A
    própria atribuição é avaliada com o valor atribuído, neste caso 5.
    Na prática, significa que $a = 5, independente do que faça,
    é uma expressão com o valor 5. Portanto, escrever algo como
    $b = ($a = 5) é como escrever
    $a = 5; $b = 5; (um ponto-e-vírgula
    marca o fim do comando). Como as atribuições são analisadas
    da direita para a esquerda, você também pode escrever $b = $a = 5.
   
   
    Outro bom exemplo de orientação de expressão é o pré e
    o pós-incremento e decremento. Usuários de PHP 2 e muitas outras
    linguagens podem estar familiarizados com a notação de variable++ e
    variable--. Estes são 
    operadores de incremento e decremento. Em PHP, como em C, há
    dois tipos de incremento - pré-incremento e pós-incremento.
    Tanto o pré-incremento quanto o pós-incremento, essencialmente, incrementam
    as variáveis, e o efeito sobre a variável é idêntico. A
    diferença é com o valor da expressão de incremento.
    O pré-incremento, que é escrito ++$variable', é avaliado
    como o valor de incremento (o PHP incrementa a variável antes
    de ler seu valor, por isso o nome pré-incremento). O pós-incremento, que é
    escrito $variable++ é avaliado como o valor original de
    $variable, antes de ser incrementada (o PHP incrementa a variável
    depois de ler seu valor, por isso o nome 'pós-incremento').
   
   
    Um tipo muito comum de expressões são expressões de comparação.
    Estas expressões avaliam como false ou true. O PHP
    suporta > (maior que), >= (maior ou igual a), == (igual),
    != (diferente), < (menor que) e <= (menor ou igual a).
    A linguagem também suporta um conjunto de operador de equivalência estrita: ===
    (igual a e do mesmo tipo) e !== (diferente de ou não do mesmo tipo).
    Estas expressões são mais comumente usadas dentro de execução condicional
    como comandos if.
   
   
    O último exemplo de expressões com que nós vamos lidar aqui são as expressões combinadas
    operador-atribuição. Você já sabe que se você
    quer incrementar $a de 1, você só precisa escrever
    $a++ ou ++$a.
    Mas e se você quiser somar mais que um a ele, por exemplo 3?
    Você poderia escrever $a++ várias vezes, mas esta
    obviamente não é uma forma muito eficiente ou confortável. Uma prática muito
    mais comum é escrever $a =
    $a + 3. $a + 3 é avaliada
    como o valor de $a mais 3, e é atribuído de volta
    a $a, que resulta em incrementar $a
    em 3. Em PHP, como em várias outras linguagens como o C, você pode escrever isto
    de uma forma mais curta, que com o tempo se torna mais limpa e rápida de se
    entender. Somar 3 ao valor corrente de $a
    pode ser escrito $a += 3. Isto significa exatamente
    "pegue o valor de $a, some 3 a ele, e atribua-o
    de volta a $a." Além de ser mais curto e mais
    limpo, isto também resulta em execução mais rápida. O valor de
    $a += 3, como o valor de uma atribuição regular, é
    o valor atribuído. Note que NÃO é 3, mas o valor combinado de
    $a mais 3 (este é o valor que
    é atribuído a $a). Qualquer operador de dois parâmetros pode ser usado
    neste modo operador-atribuição, por exemplo $a -= 5
    (subtrai 5 do valor de $a), $b *= 7
    (multiplica o valor de $b por 7), etc.
   
   
    Há mais uma expressão que podem parecer estranha se você não a viu em outras linguagens,
    o operador condicional ternário:
   
   
    
   
   
    Se o valor da primeira sub-expressão é verdadeiro (true, não-zero), então
    a segunda sub-expressão é avaliada, e este é o resultado da
    expressão condicional. Caso contrário, a terceira sub-expressão é
    avaliada e este é o valor.
   
   
    O seguinte exemplo deve ajudá-lo a entender um pouco melhor pré e
    pós-incremento e expressões em geral:
   
   
    
   
   
    Algumas expressões podem ser consideradas instruções. Neste
    caso, uma instrução na forma 'expr ;' ou seja, uma
    expressão seguida de um ponto e vírgula. Em $b = $a = 5;,
    $a = 5 é uma expressão válida, mas não é um comando
    por si só. $b = $a = 5; porém é um comando válido.
   
   
    Uma última coisa que vale mencionar é o valor-verdade de expressões.
    Em muitos eventos, principalmente em instruções condicionais e loops, você não
    está interessado no valor específico da expressão, mas somente se ela
    significa true ou false (o PHP não tem um tipo booleano dedicado).
    
    As constantes true e false (insensitivas ao caso) são seus dois
    valores booleanos possíveis. Às vezes uma expressão é
    automaticamente convertida para um booleano. Veja a
    seção sobre
    type-casting para detalhes de como isso é feito.
   
   
    O PHP fornece uma implementação completa e poderosa de expressões, e a completa
    documentação dela vai além do escopo deste manual. Os exemplos acima devem dar a
    você uma boa ideia sobre o que são as expressões e como você pode construir
    expressões úteis. Através do restante do manual nós escreveremos
    expr (ou expressão)
    para indicar qualquer expressão PHP válida.