1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-23 23:12:09 +01:00
Files
archived-doc-es/language/basic-syntax.xml
2025-05-03 21:11:42 +02:00

294 lines
9.5 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 0e618211e53c66f33762be225a4d57c08ef4b2f7 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<!-- CREDITS: DavidA -->
<chapter xml:id="language.basic-syntax" xmlns="http://docbook.org/ns/docbook" annotations="interactive">
<title>La sintaxis básica</title>
<sect1 xml:id="language.basic-syntax.phptags">
<title>Etiquetas PHP</title>
<para>
Cuando PHP procesa un fichero, reconoce las etiquetas de apertura y
de cierre, <literal>&lt;?php</literal> y <literal>?&gt;</literal>, para
definir los límites de la ejecución del código PHP. El contenido fuera de
las etiquetas es ignorado por el analizador PHP, permitiendo a PHP integrarse
de manera transparente en diversos tipos de documentos.
</para>
<para>
Un carácter de espacio (espacio, tabulación, o nueva línea) debe seguir
<literal>&lt;?php</literal> para asegurar una separación correcta de los tokens.
Omitir este espacio en blanco resultará en un error de sintaxis.
</para>
<para>
PHP incluye también la etiqueta corta echo <literal>&lt;?=</literal>,
que es un atajo para <code>&lt;?php echo</code>.
</para>
<para>
<example>
<title>Etiquetas de apertura y cierre PHP</title>
<programlisting role="php">
<![CDATA[
1. <?php echo 'Si se desea integrar código PHP en documentos XHTML o XML, utilice estas etiquetas'; ?>
2. Se puede utilizar la etiqueta corta para <?= 'escribir este texto' ?>.
Es equivalente a <?php echo 'escribir este texto' ?>.
3. <? echo 'este código está entre etiquetas cortas'; ?>
El siguiente código <?= 'texto' ?> es un atajo para <? echo 'texto' ?>
]]>
</programlisting>
</example>
</para>
<para>
Las etiquetas cortas (tercer ejemplo) están disponibles por omisión,
pero pueden ser desactivadas a través de la opción
<link linkend="ini.short-open-tag">short_open_tag</link>
del fichero de configuración &php.ini;, o están desactivadas por omisión si PHP
es compilado con la opción <option>--disable-short-tags</option>.
</para>
<para>
<note>
<para>
Como las etiquetas cortas pueden ser desactivadas, se recomienda utilizar
solo las etiquetas normales (<code>&lt;?php ?&gt;</code> y
<code>&lt;?= ?&gt;</code>) para maximizar la compatibilidad.
</para>
</note>
</para>
<para>
Si un fichero termina con código PHP, es preferible no colocar
la etiqueta de cierre al final del fichero. Esto permite evitar olvidar
un espacio o una nueva línea después de la etiqueta de cierre de PHP, lo cual
causaría efectos no deseados ya que PHP comenzará a mostrar la salida,
lo cual no es a menudo el caso deseado.
</para>
<para>
<example>
<title>Fichero que contiene solo código PHP</title>
<programlisting role="php">
<![CDATA[
<?php
echo "Hola mundo\n";
// ... más código
echo "Última instrucción\n";
// el script termina aquí, sin la etiqueta de cierre PHP
]]>
</programlisting>
</example>
</para>
</sect1>
<sect1 xml:id="language.basic-syntax.phpmode">
<title>Escape desde HTML</title>
<para>
Todo lo que se encuentra fuera de un par de etiquetas de apertura/cierre
es ignorado por el analizador PHP, lo que permite tener ficheros PHP
mezclando contenidos. Esto permite a PHP estar contenido en documentos
HTML, para crear por ejemplo plantillas.
</para>
<para>
<example>
<title>Integrar PHP en HTML</title>
<programlisting role="php">
<![CDATA[
<p>Esto será ignorado por PHP y mostrado en el navegador.</p>
<?php echo 'Mientras que esto será analizado por PHP.'; ?>
<p>Esto también será ignorado por PHP y mostrado en el navegador.</p>
]]>
</programlisting>
</example>
</para>
<para>
Esto funciona como se espera porque cuando el intérprete PHP encuentra
la etiqueta de cierre ?&gt;, simplemente comienza a mostrar lo que encuentra (a excepción de la nueva línea que es inmediatamente seguida: ver
la <link linkend="language.basic-syntax.instruction-separation">instrucción
de separación</link>) hasta que encuentre otra etiqueta de apertura
incluso si PHP se encuentra en medio de una instrucción condicional, en cuyo caso,
el intérprete determinará la condición a tener en cuenta antes de tomar una decisión sobre lo que debe ser mostrado.
Ver el siguiente ejemplo.
</para>
<para>
Uso de estructuras con condiciones
<example>
<title>Escape avanzado usando condiciones</title>
<programlisting role="php">
<![CDATA[
<?php if ($expression == true): ?>
Esto será mostrado si la expresión es verdadera.
<?php else: ?>
De lo contrario, esto será mostrado.
<?php endif; ?>
]]>
</programlisting>
</example>
En este ejemplo, PHP ignorará los bloques donde la condición no se cumpla,
incluso si están fuera de las etiquetas de apertura/cierre de PHP. PHP
los ignorará según la condición ya que el intérprete PHP pasará
los bloques que contienen lo que no se cumple por la condición.
</para>
<para>
Para mostrar grandes bloques de texto, es más eficiente salir
del modo de análisis de PHP en lugar de enviar el texto a través de la función
<function>echo</function> o
<function>print</function>.
</para>
<para>
<note>
<para>
Si PHP está integrado en un documento XML o XHTML, la etiqueta PHP
estándar <code>&lt;?php ?&gt;</code> debe ser utilizada para mantener la conformidad con los estándares.
</para>
</note>
</para>
</sect1>
<sect1 xml:id="language.basic-syntax.instruction-separation">
<title>Separación de instrucciones</title>
<para>
Al igual que en C o en Perl, PHP requiere que las instrucciones sean terminadas
por un punto y coma al final de cada instrucción. La etiqueta
de cierre de un bloque de código PHP implica automáticamente un punto y coma;
por lo tanto, no es necesario utilizar un punto y coma
para terminar la última línea de un bloque PHP. La etiqueta de cierre
de un bloque incluye el carácter de nueva línea seguido inmediatamente si uno
está presente.
</para>
<para>
<example>
<title>Ejemplo que muestra que la etiqueta de cierre incluye la nueva línea que sigue</title>
<programlisting role="php">
<![CDATA[
<?php echo "Algún texto"; ?>
Sin nueva línea
<?= "Pero nueva línea ahora" ?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Algún textoSin nueva línea
Pero nueva línea ahora
]]>
</screen>
</example>
</para>
<para>
<example>
<title>Ejemplos de entrada y salida del analizador PHP</title>
<programlisting role="php">
<![CDATA[
<?php
echo 'Esto es una prueba\n';
?>
<?php echo 'Esto es una prueba\n' ?>
<?php echo 'Omitimos la última etiqueta de cierre\n';
]]>
</programlisting>
</example>
</para>
<para>
<note>
<para>
La etiqueta de cierre de un bloque PHP al final de un fichero es opcional,
y a veces es útil omitirla cuando se utiliza la función
<function>include</function> o
la función <function>require</function>,
ya que los espacios no deseados no aparecerán al final de los ficheros, y así,
siempre se podrán agregar encabezados a la respuesta más tarde. Esto es útil
también si se desea utilizar la visualización del búfer y no se desea ver espacios en blanco añadidos al final de las partes generadas por los ficheros
incluidos.
</para>
</note>
</para>
</sect1>
<sect1 xml:id="language.basic-syntax.comments">
<title>Comentarios</title>
<para>
PHP soporta los comentarios de tipo C, C++ y Shell Unix (también
llamado estilo Perl). Por ejemplo :
</para>
<para>
<example>
<title>Comentarios</title>
<programlisting role="php">
<![CDATA[
<?php
echo 'Esto es una prueba\n'; // Esto es un comentario de una sola línea, estilo c++
/* Esto es un comentario de
varias líneas */
echo 'Esto es otra prueba\n';
echo 'Y una prueba final\n'; # Esto es un comentario de una sola línea estilo shell
?>
]]>
</programlisting>
</example>
</para>
<simpara>
Los comentarios de una sola línea solo comentan hasta el final
de la línea del bloque PHP actual.
Esto significa que el código HTML después de <literal>// ... ?&gt;</literal>
o después de <literal># ... ?&gt;</literal> SERÁ mostrado:
?&gt; terminará el modo PHP y volverá al modo HTML, y
<literal>//</literal> o <literal>#</literal> no influirá en ello.
</simpara>
<para>
<example>
<title>Los comentarios van hasta el final de la línea</title>
<programlisting role="php">
<![CDATA[
<h1>Esto es un ejemplo <?php # echo 'simple';?></h1>
<p>La línea anterior mostrará 'Esto es un ejemplo'.</p>
]]>
</programlisting>
</example>
</para>
<simpara>
Los comentarios estilo 'C' comentan hasta que se encuentre el primer <literal>*/</literal>.
Se debe tener cuidado con los comentarios estilo 'C' anidados en grandes bloques cuando se comentan.
</simpara>
<para>
<example>
<title>Los comentarios de tipo C</title>
<programlisting role="php">
<![CDATA[
<?php
/*
echo 'Esto es una prueba'; /* Este comentario causará un problema */
*/
?>
]]>
</programlisting>
</example>
</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:
-->