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" (&)
na defini��o da fun��o:
-
+
<informalexample>
<programlisting role="php">
-function add_some_extra(&$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 (&$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 & 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">
-<?php
-function foo() {
- echo "Em foo()<br>\n";
+<![CDATA[
+<?php
+function foo()
+{
+ echo "Chamou foo()<br>\n";
}
-function bar( $arg = '' ) {
- echo "Em bar(); argumento era '$arg'.<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
+-->