Files
archived-doc-pt-br/language/basic-syntax.xml
Richard Quadling 0ebda4eac7 sgml-default-dtd-file:"~/.phpdoc/manual.ced"
git-svn-id: https://svn.php.net/repository/phpdoc/pt_BR/trunk@314030 c90b9560-bf6c-de11-be94-00142212c4b1
2011-08-01 12:21:02 +00:00

238 lines
8.3 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- EN-Revision: n/a Maintainer: ae Status: ready -->
<chapter xml:id="language.basic-syntax" xmlns="http://docbook.org/ns/docbook">
<title>Sintaxe Básica</title>
<sect1 xml:id="language.basic-syntax.phpmode">
<title>Escapando o HTML</title>
<para>
Quando o PHP interpreta um arquivo, ele procura pelas tags de abertura e fechamento,
as quais indicam para o PHP começar e parar de interpretar o código
entre elas. Interpretar desta maneira permite ao PHP ser embutido em todos
os tipos de documentos, já que tudo, fora o par
de tags de abertura e fechamento é ignorado pelo interpretador do PHP.
Na maioria das vezes você verá o PHP embutido em documentos HTML
como neste exemplo.
<informalexample>
<programlisting role="php">
<![CDATA[
<p>Isto vai ser ignorado.</p>
<?php echo 'Enquanto isto vai ser interpretado.'; ?>
<p>Isto também vai ser ignorado.</p>
]]>
</programlisting>
</informalexample>
</para>
<para>
Você também pode usar estruturas mais avançadas:
<example>
<title>Escapando de modo avançado</title>
<programlisting role="php">
<![CDATA[
<?php
if ($expression) {
?>
<strong>Isto é verdadeiro.</strong>
<?php
} else {
?>
<strong>Isto é falso.</strong>
<?php
}
?>
]]>
</programlisting>
</example>
Isto funciona como o esperado, porque o quando PHP atinge o ?&gt; fechando
as tags, ele simplesmente começa a enviar para a saída qualquer coisa (exceto
newlines em seguida - veja <link
linkend="language.basic-syntax.instruction-separation">separação de instruções</link>)
que encontre até que atinja outra tag de abertura. O exemplo dado aqui é
resumido, claro, mas para escrever grandes blocos de texto, sair do modo de
interpretação do PHP é geralmente mais eficiente do que enviar todo
o texto atráves de <function>echo</function> ou
<function>print</function>.
</para>
<para>
Existem quatro diferentes pares de tags de abertura e fechamento
que podem ser usados com o PHP. Duas dessas, &lt;?php ?&gt; e
&lt;script language="php"&gt; &lt;/script&gt;, estão sempre disponíveis.
As outras duas são tags curtas e tags no estilo <productname>ASP</productname>,
e podem ser ativadas e desativadas a partir do arquivo de configuração &php.ini;.
Assim, ao passo que algumas pessoas acham as tags curtas e tags no estilo
<productname>ASP</productname> conveniente, elas são menos portáveis,
e geralmente não recomendadas.
<note>
<para>
Também note que se você está embutindo o PHP no XML ou XHTML
você irá precisar usar as tags &lt;?php ?&gt; para continuar
cumprindo com os padrões.
</para>
</note>
</para>
<para>
<example>
<title>Abrindo e Fechando as Tags do PHP</title>
<programlisting role="php">
<![CDATA[
1. <?php echo 'se você quer servir documentos XHTML ou XML, faça assim'; ?>
2. <script language="php">
echo 'alguns editores (como o FrontPage) não
gostam de instruções de processamento';
</script>
3. <? echo 'esta é a mais simples, uma instrução de processamento SGML'; ?>
<?= expressão ?> Isto é um atalho para "<? echo expressão ?>"
4. <% echo 'Você pode opcionalmente usar tags no estilo ASP'; %>
<%= $variavel; # Isto é um atalho para "<% echo . . ." %>
]]>
</programlisting>
</example>
</para>
<para>
Enquanto as tags vistas nos exemplos um e dois estão
ambas sempre disponíveis, o exemplo um é mais comumente
usado, e recomendado, das duas.
</para>
<para>
Tags curtas (exemplo três) estão disponíveis apenas quando são ativadas
pela configuração <link linkend="ini.short-open-tag">short_open_tag</link>
no arquivo &php.ini; ou se o PHP foi configurado com
a opção <option>--enable-short-tags</option>.
</para>
<para>
Tags no estilo <productname>ASP</productname> (exemplo quatro estão disponíveis apenas
quando elas estão ativadas atráves da diretiva de configuração <link linkend="ini.asp-tags">asp_tags</link>
no arquivo &php.ini;.
</para>
<para>
<note>
<para>
O uso de tags curtas deve ser evitado ao desenvolver aplicações
ou bibliotecas que serão redistribuídas, ou serão usadas em
servidores PHP que não estão sobre o seu controle, porque as tags curtas
podem não ser suportadas no servidor em questão. Para código portável,
redistribuível, tenha certeza de não usar tags curtas.
</para>
</note>
</para>
</sect1>
<sect1 xml:id="language.basic-syntax.instruction-separation">
<title>Separação de instruções</title>
<para>
Como no C ou Perl, o PHP requer que as instruções sejam terminadas
com um ponto-e-vírgula ao final de cada comando. A tag de fechamento de
um bloco de código PHP automaticamente implica em um ponto-e-vírgula; você
não precisa ter um ponto-e-vírgula terminando a última linha de um
bloco PHP. A tag de fechamento irá incluir uma nova linha logo após, se
estiver presente.
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
echo 'Isto é um teste';
?>
<?php echo 'Isto é um teste' ?>
<?php echo 'Nós omitimos a última tag de fechamento';
]]>
</programlisting>
</informalexample>
<note>
<para>
A tag de fechamento de um bloco PHP ao final de um arquivo é opcional,
e em alguns casos omiti-la é útil ao usar <function>include</function>
ou <function>require</function>, assim espaço em branco indesejado não
irá aparecer ao final dos arquivos, e você ainda será capaz de adicionar
cabeçalhos a resposta após. Também é útil se você usar output
buffering, e você não quer ter adicionado um espaço em branco ao final
das partes geradas por arquivos incluídos.
</para>
</note>
</para>
</sect1>
<sect1 xml:id="language.basic-syntax.comments">
<title>Comentários</title>
<para>
O PHP suporta comentários no estilo 'C', 'C++' e shell do Unix shell (estilo Perl). Por exemplo:
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
echo 'Isto é um teste'; // Estilo de comentário de uma linha em c++
/* Este é um comentário de múltiplas linhas
ainda outra linha de comentário */
echo 'Isto é ainda outro teste';
echo 'Um teste final'; # Este é um comentário de uma linha no estilo shell
?>
]]>
</programlisting>
</informalexample>
</para>
<simpara>
Os comentários de estilo "uma linha" apenas comentam até o final da linha
ou do bloco PHP de código corrente, o que chegar primeiro.
Isto significa que o código HTML após <literal>// ... ?&gt;</literal>
ou <literal># ... ?&gt;</literal> SERÁ exibido:
?&gt; Interrompe o modo PHP e retorna para o modo HTML, e
<literal>//</literal> ou <literal>#</literal> não podem influenciar isto.
Se a diretiva de configuração <link linkend="ini.asp-tags">asp_tags</link>
estiver ativa, ela funciona da mesma maneira que <literal>// %&gt;</literal> e
<literal># %&gt;</literal>.
Entretando, a tag <literal>&lt;/script&gt;</literal> não interrompe o modo PHP
em um comentário de uma linha.
</simpara>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
<h1>Isto é um <?php # echo 'simples';?> exemplo.</h1>
<p>O cabeçalho acima irá dizer 'Isto é um exemplo'.</p>
]]>
</programlisting>
</informalexample>
</para>
<simpara>
Comentários no estilo 'C' termina ao primeiro <literal>*/</literal> encontrado.
Tenha certeza de não aninhar comentários no estilo 'C'. É fácil fazer este
engano se você esta tentando comentar grandes blocos de código.
</simpara>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
/*
echo 'Isto é um teste'; /* Este comentário irá causar um problema */
*/
?>
]]>
</programlisting>
</informalexample>
</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
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/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
-->