Você está na página 1de 4

Expressões Page 1 of 4

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:

<?php
function foo ()
{
return 5;
}
?>

Assumindo que você está familiarizado com o conceito de funções (se não estiver, dê uma
olhada no capítulo sobre funções (language.functions.html)), 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

mk:@MSITStore:C:\Users\Mtds\Downloads\php_manual_pt_BR.chm::/res/language.... 24/01/2024
Expressões Page 2 of 4

você não pode partir em peças menores, diferentemente de matrizes, por exemplo). O PHP
também suporta dois tipos compostos (não escalar): matrizes 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 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--. Este são operadores de incremento e decremento
(language.operators.increment.html). 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


(language.operators.comparison.html). Estas expressões avaliam para ser 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 usada 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

mk:@MSITStore:C:\Users\Mtds\Downloads\php_manual_pt_BR.chm::/res/language.... 24/01/2024
Expressões Page 3 of 4

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:

<?php
$primeira ? $segunda : $terceira
?>

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:

<?php
function double($i)
{
return $i*2;
}
$b = $a = 5; /* atribui o valor cinco às variáveis $a e $b */
$c = $a++; /* pós-incremento, atribui o valor original de $a
(5) para $c */
$e = $d = ++$b; /* pré-incremento, atribui o valor incrementado de
$b (6) a $d e $e */
/* neste ponto, tanto $d quanto $e são iguais a 6 */
$f = double($d++); /* atribui o dobro do valor de $d antes
do incremento, 2*6 = 12 a $f */
$g = double(++$e); /* atribui o dobro do valor de $e depois
do incremento, 2*7 = 14 a $g */

mk:@MSITStore:C:\Users\Mtds\Downloads\php_manual_pt_BR.chm::/res/language.... 24/01/2024
Expressões Page 4 of 4

$h = $g += 10; /* primeiro, $g é incrementado de 10 e termina com o


valor 24. o valor da atribuição (24) é
então atribuído a $h, e $h termina com o valor
24 também. */
?>

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 (language.types.type-
juggling.html#language.types.typecasting) 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.

mk:@MSITStore:C:\Users\Mtds\Downloads\php_manual_pt_BR.chm::/res/language.... 24/01/2024

Você também pode gostar