Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
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
?>
<?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
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.
mk:@MSITStore:C:\Users\Mtds\Downloads\php_manual_pt_BR.chm::/res/language.... 24/01/2024