ae Sat Jun 1 15:47:49 2002 EDT Modified files: /phpdoc-pt_BR/language expressions.xml Log: update
Index: phpdoc-pt_BR/language/expressions.xml diff -u phpdoc-pt_BR/language/expressions.xml:1.4 phpdoc-pt_BR/language/expressions.xml:1.5 --- phpdoc-pt_BR/language/expressions.xml:1.4 Wed Dec 12 15:56:35 2001 +++ phpdoc-pt_BR/language/expressions.xml Sat Jun 1 15:47:49 2002 @@ -1,23 +1,25 @@ <?xml version="1.0" encoding="iso-8859-1"?> +<!-- EN-Revision: 1.19 Maintainer: ae Status: ready --> <chapter id="language.expressions"> <title>Expressões</title> <simpara> - Expressões são as peças de construção mais importantes do PHP. Em PHP, + Expressões são as peças 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".</simpara> + mais precisa de definir uma expressão é "tudo o que tem um + valor".</simpara> <simpara> - As formas mais básicas de expressões são constantes e variáveis. Quando você - digita "$a = 5", você está atribuindo '5' a $a. '5', obviamente, tem o valor + As formas mais básicas de expressões são constantes e variáveis. Quando você + digita "$a = 5", você está atribuindo '5' para $a. '5', obviamente, tem o valor 5, ou, em outras palavras, '5' é uma expressão com o valor 5 (neste caso, '5' é uma constante inteira).</simpara> <simpara> - 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 + 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 $b 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 funciona bem, isto é exatamente o que acontecerá. + valor 5 também. Se tudo funcionou bem, isto é exatamente o que acontecerá. </simpara> <para> @@ -25,15 +27,18 @@ considere a seguinte função: <informalexample> - <programlisting> -function foo () { + <programlisting role="php"> +<![CDATA[ +function foo () +{ return 5; } +]]> </programlisting> </informalexample></para> <simpara> - Assumindo que você está familiarizado com o conceito de funções (se não estiver, + 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 <literal>$c = foo()</literal> é essencialmente a mesma coisa que escrever <literal>$c = 5</literal>, e você está certo. Funções são expressões com o valor @@ -42,8 +47,8 @@ computam algo.</simpara> <simpara> - Obviamente, os valores em PHP não têm que ser inteiros, e muito frequentemente eles - não são. O PHP suporta três tipos de valor escalar: valores inteiros, valores de + Obviamente, os valores em PHP não têm que ser inteiros, e muito freqüentemente +eles + não são. O PHP suporta três tipos de valores escalares: valores inteiros, valores +de ponto flutuante e valores de string (valores escalares são valores que você não pode quebrar em pedaços menores, diferente de matrizes, por exemplo). O PHP também suporta dois tipos compostos (não-escalares): matrizes e objetos. Cada @@ -57,8 +62,8 @@ 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 + adicional envolvido, 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, @@ -66,43 +71,43 @@ <simpara> Outro bom exemplo de orientação de expressão é o pré e o pós-incremento e decremento. - Usuários de PHP/FI 2 e muitas outras linguagens podem estar familiarizados com a - notação de variável++ e variável--. Estes são operadores de incremento e decremento. - Em PHP/FI 2, o comando '$a++' não tem valor (não é uma expressão), e portanto você - não pode atribuir desta forma ou usá-la de jeito nenhum. O PHP evoluiu a capabilidade - de incremento/decremento criando estas expressões também, como em C. Em PHP, como em C, + Usuários de PHP/FI 2 e muitas outras linguagens podem estar familiarizados com a + notação de variável++ e variável--. Estes são os operadores de incremento e +decremento. + No PHP/FI 2, o comando '$a++' não tem valor (não é uma expressão), e portanto você + não pode atribuir desta forma ou usá-la de jeito nenhum. O PHP evoluiu a +capacidade + de incremento/decremento criando estas expressões também, como em C. 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 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 da + quanto o pós-incremento, essencialmente, incrementam 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 '++$variavel', é 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 '$variavel++' é avaliado como o valor original da variável, antes de ser incrementada (o PHP incrementa a variável depois de ler seu valor, por isso o nome 'pós-incremento').</simpara> <simpara> - Um tipo muito comum de expressão são expressões de comparação. Estas expressões são - avaliadas como 0 ou 1, significando &false; ou &true; (respectivamente). O PHP suporta - > (maior que), >= (maior ou igual), == (igual), != (diferente), < (menor que) - e <=(menor ou igual). Estas expressões são usadas mais frequentemente dentro de - execuções condicionais, como em comandos <literal>if</literal>.</simpara> + Um tipo muito comum de expressão são expressões de comparação. Estas expressões +são + avaliadas como 0 ou 1, significando &false; ou &true;, respectivamente. O PHP +suporta + > (maior que), >= (maior ou igual), == (igual), != (diferente), < (menor +que) + e <=(menor ou igual). Estas expressões são usadas mais freqüentemente dentro de + instruções condicionais, como em comandos <literal>if</literal>.</simpara> <simpara> 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'. + 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 de 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, também. Somar 3 ao valor corrente de $a pode ser escrito '$a +=3'. Isto + escrever isto de uma forma mais curta, que com o tempo se torna mais limpa e +rápida de + se entender, também. 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 duas posições pode ser usado neste modo operador-atribuição, - por exemplo '$a -= 5' (subtrai 5 do valor de $a), + 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.</simpara> <para> @@ -110,82 +115,98 @@ o operador condicional ternário: <informalexample><programlisting> -$first ? $second : $third -</programlisting></informalexample> - - Se o valor da primeira sub-expressão é verdadeiro (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.</para> +<![CDATA[ +$primeira ? $segunda : $terceira +]]> + </programlisting></informalexample> + + 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. + + </para> <para> - O seguinte exemplo deve ajudá-lo a entender um pouco melhor pré e pós-incremento e expressões + O seguinte exemplo deve ajudá-lo a entender um pouco melhor pré e pós-incremento +e expressões em geral: <informalexample> - <programlisting> -function double($i) { + <programlisting role="php"> +<![CDATA[ +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) a $c */ -$e = $d = ++$b; /* pré-incremento, atribui o valor incrementado de +$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 <emphasis>antes</emphasis> +$f = double($d++); /* atribui o dobro do valor de $d <emphasis>antes</emphasis> do incremento, 2*6 = 12 a $f */ $g = double(++$e); /* atribui o dobro do valor de $e <emphasis>depois</emphasis> do incremento, 2*7 = 14 a $g */ -$h = $g += 10; /* primeiro, $g é incrementado de 10 e termina com o valor +$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. */ - </programlisting></informalexample></para> +]]> + </programlisting> + </informalexample> + </para> <simpara> No começo do capítulo, nós dissemos que descreveríamos os vários tipos de comandos, e como prometido, expressões podem ser comandos. Porém, nem toda - expressão é um comando. Neste caso, um comando tem a forma 'expr' ';', ou + expressão é um comando. Neste caso, um comando tem a forma 'expr' ';', ou seja, uma expressão seguida de ponto-e-vírgula. E '$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.</simpara> <simpara> - Uma última coisa que vale mencionar é o valor-verdade de expressões. Em - muitos eventos, principalmente em execuções condicionais e 'loops', você não - está interessado no valor específico da expressão, mas só interessa se ela - significa &true; ou &false; (o PHP não tem um tipo booleano dedicado). O - valor-verdade de expressões em PHP é calculado de uma forma similar ao Perl. - Qualquer valor numérico diferente de zero é &true;, zero é &false;. Tenha certeza - de notar que valores negativos são diferentes de zero, e portanto considerados - &true;! A string vazia e a string "0" são falsas; todas as outras strings são - &true;. Com valores não-escalares (matrizes e objetos) - se o valor não contiver - elementos é considerado &false;, caso contrário é considerado &true;.</simpara> - + 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). + + <!-- (PHP doesn't have a + dedicated boolean type) : WRONG, php does. --> + + As constantes &true; e &false; (insensitivas ao caso) são seus dois + valores booleanos possíveis. As vezes uma expressão é + automaticamente convertida para um booleano. Veja a + <link linkend="language.types.typecasting">seção sobre + type-casting</link> para detalhes de como isso é feito. + </simpara> <simpara> 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 + documentação dela vai além do escopo deste manual. Os exemplos acima devem dar a você uma boa idéia 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 - <replaceable>expr</replaceable> para indicar qualquer expressão PHP válida.</simpara> + <replaceable>expr</replaceable> ou <replaceable>expressao</replaceable> + para indicar qualquer expressão PHP válida.</simpara> </chapter> - <!-- Keep this comment at the end of the file - Local variables: - mode: sgml - sgml-omittag:t - sgml-shorttag:t - sgml-minimize-attributes:nil - sgml-always-quote-attributes:t - sgml-indent-step:1 - sgml-indent-data:t +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t indent-tabs-mode:nil - sgml-parent-document:nil - sgml-default-dtd-file:"../manual.ced" - sgml-exposed-tags:nil - sgml-local-catalogs:nil - sgml-local-ecat-files:nil - End: - --> +sgml-parent-document:nil +sgml-default-dtd-file:"../../manual.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:nil +sgml-local-ecat-files:nil +End: +vim600: syn=xml fen fdm=syntax fdl=2 si +vim: et tw=78 syn=sgml +vi: ts=1 sw=1 +-->