ae              Thu Jun 20 19:52:51 2002 EDT

  Modified files:              
    /phpdoc-pt_BR/language      functions.xml 
  Log:
  review
  
Index: phpdoc-pt_BR/language/functions.xml
diff -u phpdoc-pt_BR/language/functions.xml:1.3 phpdoc-pt_BR/language/functions.xml:1.4
--- phpdoc-pt_BR/language/functions.xml:1.3     Wed Dec 12 15:56:35 2001
+++ phpdoc-pt_BR/language/functions.xml Thu Jun 20 19:52:50 2002
@@ -1,26 +1,39 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
+<!-- EN-Revision: 1.27 Maintainer: ae Status: ready -->
  <chapter id="functions">
   <title>Funções</title>
 
   <sect1 id="functions.user-defined">
    <title>Funções definidas pelo usuário</title>
- 
+
    <para>
     Uma função pode ser definida usando-se a sintaxe como a seguinte:
- 
+
     <informalexample>
      <programlisting role="php">
-function foo ($arg_1, $arg_2, ..., $arg_n) {
-    echo "Função-exemplo.\n";
-    return $retval;
+<![CDATA[
+function foo ($argumento_1, $argumento_2, ..., $argumento_n)
+{
+    echo "Exemplo de função.\n";
+    return $valor_retornado;
 }
+]]>
      </programlisting>
     </informalexample>
    </para>
-     
+
+   <!--
+
+    status of func(const $param) ?
+    zend doesn't care at all whether or not you specify it.
+    I've never seen it before... what's its use? (or was...)
+
+    -->
+
    <simpara>
-    Qualquer código PHP válido aparece dentro de uma função, mesmo outras funções
+    Qualquer código PHP válido pode aparecer dentro de uma função, mesmo outras 
+funções
     e definições de <link linkend="keyword.class">classes</link>.
+    
    </simpara>
    <simpara>
     No PHP3, as funções precisam ser definidas antes de serem referenciadas. Esse
@@ -31,171 +44,168 @@
     alterar a definição de funções previamente declaradas.
    </simpara>
    <simpara>
-    O PHP3 não suporta número variável de argumentos para funções, apesar de os 
+    O PHP3 não suporta número variável de argumentos para funções, apesar de os
     argumentos padrões serem suportados (veja <link
     linkend="functions.arguments.default">Valores padrão de argumentos
     </link> para mais informações). O PHP4 suporta ambos: veja <link
-    linkend="functions.variable-arg-list">Listas de argumentos com comprimento
-    variável</link> e as referências de função de
+    linkend="functions.variable-arg-list">Número de argumentos
+    variável</link> e as referências das funções
     <function>func_num_args</function>,
-    <function>func_get_arg</function>, e
+    <function>func_get_arg</function> e
     <function>func_get_args</function> para mais informações.
    </simpara>
 
   </sect1>
- 
+
   <sect1 id="functions.arguments">
    <title>Argumentos de funções</title>
- 
+
    <simpara>
-    Informação pode ser passada para funções através da lista de argumentos, que é 
uma 
+    Informações podem ser passadas para funções através da lista de argumentos, que é 
+uma
     lista de variáveis e/ou constantes delimitados por vírgulas.
-   </simpara> 
+   </simpara>
    <para>
      O PHP suporta a passagem de argumentos por valor (o padrão), <link
      linkend="functions.arguments.by-reference">passagem por referência
-     </link>, e <link
+     </link> e <link
      linkend="functions.arguments.default">valores padrão de argumento
      </link>. Listas de argumentos de comprimento variável são suportadas apenas
-     no PHP4 e posteriores; veja <link
-     linkend="functions.variable-arg-list">Listas de argumentos de comprimento 
-     variável</link> e as referências de função de
+     no PHP4 e posterior; veja <link
+     linkend="functions.variable-arg-list">Número de argumentos
+     variável</link> e as referências das funções
      <function>func_num_args</function>,
-     <function>func_get_arg</function>, e
+     <function>func_get_arg</function> e
      <function>func_get_args</function> para mais informações. Um efeito similar
-     pode ser atingido no PHP3 pela passagem de uma matriz de argumentos para uma
+     pode ser atingido no PHP 3 pela passagem de um array de argumentos para uma
      função:
- 
+
     <informalexample>
      <programlisting role="php">
-function takes_array($input) {
+<![CDATA[
+function takes_array($input)
+{
     echo "$input[0] + $input[1] = ", $input[0]+$input[1];
 }
+]]>
      </programlisting>
     </informalexample>
    </para>
- 
+
    <sect2 id="functions.arguments.by-reference">
     <title>Fazendo argumentos serem passados por referência</title>
- 
+
     <simpara>
      Por padrão, argumentos de função são passados por valor (de forma que se
-     você mudar o valor do argumento dentro da função, ele não é mudado fora
+     você mudar o valor do parâmetro dentro da função, ele não é alterado fora
      da função). Se você deseja permitir que uma função modifique seus argumentos,
-     você precisa passá-los por referência.
+     você precisa passá-los por
+     referência.
     </simpara>
     <para>
      Se você quer que um argumento para uma função sempre seja passado por
      referência, você pode preceder o nome do argumento com um "e comercial" (&amp;)
      na definição da função:
- 
+
      <informalexample>
       <programlisting role="php">
-function add_some_extra(&amp;$string) {
-    $string .= 'e algo mais.';
+<![CDATA[
+function add_some_extra(&$string)
+{
+    $string .= ' e alguma coisa mais.';
 }
-$str = 'Isto é uma string, ';
+$str = 'Isto é uma string,';
 add_some_extra($str);
-echo $str;    // outputs 'Isto é uma string, e algo mais.'
-      </programlisting>
-     </informalexample>
-    </para>
- 
-    <para>
-     Se você deseja passar uma variável por referência a uma função que não faz isto 
por
-     padrão, você pode preceder o nome do argumento com um "e comercial" na chamada da
-     função:
- 
-     <informalexample>
-      <programlisting role="php">
-function foo ($bar) {
-    $bar .= ' e algo mais.';
-}
-$str = 'Isto é uma string, ';
-foo ($str);
-echo $str;    // outputs 'Isto é uma string, '
-foo (&amp;$str);
-echo $str;    // outputs 'Isto é uma string, e algo mais.'
+echo $str;    // imprime 'Isto é uma string, e alguma coisa mais.'
+]]>
       </programlisting>
      </informalexample>
     </para>
 
    </sect2>
- 
+
    <sect2 id="functions.arguments.default">
     <title>Valores padrão de argumentos</title>
- 
+
     <para>
      Uma função pode definir valores padrão no estilo C++ para argumentos escalares, 
como
      a seguir:
- 
+
      <informalexample>
       <programlisting role="php">
-function makecoffee ($type = "cappucino") {
-    return "Fazendo uma xícara de $type.\n";
-}
-echo makecoffee ();
-echo makecoffee ("café expresso");
+<![CDATA[
+function cafeteira ($tipo = "cappuccino")
+{
+    return "Fazendo uma xícara de café $type.\n";
+}
+echo cafeteira ();
+echo cafeteira ("expresso");
+]]>
       </programlisting>
      </informalexample>
     </para>
- 
+
     <para>
-     The output from the above snippet is:
- 
+     A saída do código acima será:
+
      <screen>
-Fazendo uma xícara de cappucino.
+Fazendo uma xícara de café cappucino.
 Fazendo uma xícara de café expresso.
      </screen>
     </para>
- 
+
     <simpara>
      O valor padrão precisa ser uma expressão constante, não (por
      exemplo) uma variável ou um membro de classe.
     </simpara>
     <para>
-     Note que usando argumentos padrão, qualquer padrão dever estar do lado
-     direito de argumentos não-padrão; caso contrário, as coisas não funcionarão
+     Note que usando argumentos padrão, qualquer padrão deve vir após
+     os argumentos sem padrão: caso contrário, as coisas não funcionarão
      como esperado. Considere o seguinte trecho de código:
- 
+
      <informalexample>
       <programlisting role="php">
-function makeyogurt ($type = "azeda", $flavour) {
-    return "Fazendo uma taça de $flavour $type.\n";
+<![CDATA[
+function iogurtera ($tipo = "azeda", $sabor)
+{
+    return "Fazendo uma taça de $tipo $sabor.\n";
 }
- 
-echo makeyogurt ("framboesa");   // não vai funcionar como o esperado
+
+echo iogurtera ("framboesa");   // não funciona como esperado
+]]>
       </programlisting>
      </informalexample>
     </para>
- 
+
     <para>
      A saída do exemplo acima é:
- 
+
      <screen>
-Warning: Missing argument 2 in call to makeyogurt() in 
+Warning: Missing argument 2 in call to iogurtera() in
 /usr/local/etc/httpd/htdocs/php3test/functest.html on line 41
 Fazendo uma taça de framboesa.
      </screen>
     </para>
- 
+
     <para>
      Agora, compare o que está acima com este:
- 
+
      <informalexample>
       <programlisting role="php">
-function makeyogurt ($flavour, $type = "azeda") {
-    return "Fazendo uma taça de $flavour $type.\n";
+<![CDATA[
+function iogurtera ($sabor, $tipo = "azeda")
+{
+    return "Fazendo uma taça de $tipo $sabor.\n";
 }
- 
-echo makeyogurt ("framboesa");   // funciona como o esperado
+
+echo iogurtera ("framboesa");   // funciona
+]]>
       </programlisting>
      </informalexample>
     </para>
- 
+
     <para>
      A saída deste exemplo é:
- 
+
      <screen>
 Fazendo uma taça de framboesa azeda.
      </screen>
@@ -204,64 +214,92 @@
    </sect2>
 
    <sect2 id="functions.variable-arg-list">
-    <title>Listas de argumentos de comprimento variável</title>
-       
+    <title>Número variável de argumentos</title>
+
     <simpara>
-     O PHP4 tem suporte para listas de argumentos de comprimento variável
-     nas funções definidas pelo usuário. Isto é realmente bem fácil, usando 
+     O PHP4 tem suporte para um número variável de argumentos
+     nas funções definidas pelo usuário. Isto é realmente bem fácil, usando
      as funções <function>func_num_args</function>,
-     <function>func_get_arg</function>, e
+     <function>func_get_arg</function> e
      <function>func_get_args</function>.
     </simpara>
 
     <simpara>
-     Nenhuma sintaxe especial é requerida, e as listas de argumentos ainda 
-     podem ser fornecidas explicitamente com as definições de funções e se
+     Nenhuma sintaxe especial é requerida, e a lista de argumentos ainda
+     pode ser fornecida explicitamente com as definições de funções e se
      comportarão normalmente.
     </simpara>
 
    </sect2>
 
   </sect1>
- 
+
   <sect1 id="functions.returning-values">
-   <title>Returnando valores</title>
- 
+   <title>Retornando valores</title>
+
    <para>
-    Valores são retornados pelo uso de comandos opcionais de retorno. Qualquer
-    tipo pode ser retornado, incluindo listas e objetos.
- 
+    Valores podem ser retornados utilizando a instrução opcional return. Qualquer
+    tipo pode ser retornado, incluindo arrays e objetos. Isto faz com que
+    as função termine sua execução imediatamente e passa o controle de volta para
+    a linha de onde ela foi chamada. Veja a documentação da função 
+<function>return</function>
+    para maiores informações.
     <informalexample>
      <programlisting role="php">
-function square ($num) {
+<![CDATA[
+function quadrado ($num)
+{
     return $num * $num;
 }
-echo square (4);   // imprime '16'.
+echo quadrado (4);   // imprime '16'.
+]]>
      </programlisting>
     </informalexample>
    </para>
-      
+
    <para>
-    Você não pode retornar múltiplos valores a partir de uma função, mas 
-    resultados similares podem ser obtidos retornando uma lista.
- 
+    Você não pode retornar múltiplos valores a partir de uma função, mas
+    resultados similares podem ser devolvidos retornando por uma lista.
+
     <informalexample>
      <programlisting role="php">
-function small_numbers() {
+<![CDATA[
+function numeros_pequenos()
+{
     return array (0, 1, 2);
 }
-list ($zero, $one, $two) = small_numbers();
+list ($zero, $um, $dois) = numeros_pequenos();
+]]>
      </programlisting>
     </informalexample>
    </para>
+   <para>
+    Para retornar uma referência de uma função, você precisa utilizar
+    o operador de referência &amp; tanto na declaração da função como
+    quando assimilando o valor retornado para a variável.
+    <informalexample>
+     <programlisting role="php">
+<![CDATA[
+function &retorna_referencia()
+{
+    return $alguma_referencia;
+}
 
+$nova_referencia =& retorna_referencia();
+]]>
+     </programlisting>
+    </informalexample>
+   </para>
+   <simpara>
+    Para mais detalhes sobre referências, leia a seção <link
+    linkend="language.references">Referências</link>.
+   </simpara>
   </sect1>
- 
+
   <sect1 id="functions.old-syntax">
    <title><literal>old_function</literal></title>
- 
+
    <simpara>
-    O comando <literal>old_function</literal> permite que você declare uma 
+    O comando <literal>old_function</literal> permite que você declare uma
     função usando uma sintaxe idêntica ao PHP/FI2 (exceto pelo fato de que
     você precisa substituir 'function' com 'old_function').
    </simpara>
@@ -274,8 +312,8 @@
      Funções declaradas como <literal>old_function</literal> não podem ser chamadas
      a partir de código interno do PHP. Entre outras coisas, isso significa que você
      não pode usá-las em funções como
-     <function>usort</function>, <function>array_walk</function>, e
-     <function>register_shutdown_function</function>. Você pode contornar essa 
+     <function>usort</function>, <function>array_walk</function> e
+     <function>register_shutdown_function</function>. Você pode contornar essa
      limitação escrevendo um invólucro de função (no formato PHP3 normal) para chamar
      o <literal>old_function</literal>.
     </para>
@@ -284,56 +322,75 @@
   </sect1>
 
   <sect1 id="functions.variable-functions">
-   <title>Variable functions</title>
+   <title>Funções variáveis</title>
 
    <para>
-    O PHP suporta o conceito de funções variáveis. Isto significa que se um nome de 
-    variável tem parênteses juntos como ele, o PHP procurará uma função com o mesmo
-    nome, qualquer que seja a avaliação da variável, e tentará executá-la. Entre 
outras
-    coisas, isto pode ser usado para implementar retornos, tabelas de função e 
-    assim por diante.
+    O PHP suporta o conceito de funções variáveis. Isto significa que se
+    um nome de variável tem parênteses no final dela, o PHP procurará
+    uma função com o mesmo nome, qualquer que seja a avaliação da variável,
+    e tentará executá-la. Entre outras coisas, isto pode
+    ser usado para implementar callbacks, tabelas de função e assim por diante.
+   </para>
+   <para>
+    Funções variáveis não funcionam com construtores de linguagem como
+    <function>echo</function>, <function>unset</function>,
+    <function>isset</function>, <function>empty</function> e
+    <function>include</function>. Entretanto, o construtor
+    <function>print</function> é uma exceção, e irá funcionar.
+    Este é uma das maiores diferenças entre as funções do PHP e
+    os construtores de linguagem.
    </para>
-
    <para>
     <example>
      <title>Exemplo de funções variáveis</title>
      <programlisting role="php">
-&lt;?php
-function foo() {
-    echo "Em foo()&lt;br>\n";
+<![CDATA[
+<?php
+function foo()
+{
+    echo "Chamou foo()<br>\n";
 }
 
-function bar( $arg = '' ) {
-    echo "Em bar(); argumento era '$arg'.&lt;br>\n";
+function bar($arg = '')
+{
+    echo "Chamou bar(); com argumento '$arg'.<br>\n";
 }
 
 $func = 'foo';
 $func();
 $func = 'bar';
-$func( 'teste' );
+$func('teste');
 ?>
+]]>
      </programlisting>
     </example>
    </para>
+   <para>
+    Veja também: <link linkend="language.variables.variable">
+    Variáveis variáveis</link> e <function>function_exists</function>.
+   </para>
 
   </sect1>
- 
+
  </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
+-->


Reply via email to