svn: /phpdoc/ca/trunk/language/control-structures/ for.xml

[email protected] (Oriol de la Torre) Thu, 15 Sep 2011 18:36:51 +0000
Newsgroups php.doc.ca
Message-ID <[email protected]>
--7e52aec059124f7ba14ef23f48baa7c93d582685
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit

uri                                      Thu, 15 Sep 2011 18:36:51 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=316826

Log:
Adding another translated file

Changed paths:
    A   phpdoc/ca/trunk/language/control-structures/for.xml

Added: phpdoc/ca/trunk/language/control-structures/for.xml
===================================================================
--- phpdoc/ca/trunk/language/control-structures/for.xml	                        (rev 0)
+++ phpdoc/ca/trunk/language/control-structures/for.xml	2011-09-15 18:36:51 UTC (rev 316826)
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision$ -->
+
+<sect1 xml:id="control-structures.for" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title><literal>for</literal></title>
+ <?phpdoc print-version-for="for"?>
+ <para>
+  Els cicles <literal>for</literal> són els cicles més complexos de PHP.
+  I presenten una forma anàloga al funcionament en llenguatge C.
+  La sintaxi de tals cicles <literal>for</literal> és la següent:
+  <informalexample>
+   <programlisting>
+<![CDATA[
+for (expressio1; expressio2; expressio3)
+    sentència/es
+]]>
+   </programlisting>
+  </informalexample>
+ </para>
+ <simpara>
+  La primera expressió (<varname>expressio1</varname>) es avaluada (executada)
+  almenys un cop i de forma incondicionada al inici del loop.
+ </simpara>
+ <simpara>
+  La segona de les expressions, l'<varname>expressio2</varname>, serà avaluada al inici de cada iteració.
+  Si tal avaluació retorna veritat (&true;), el cicle continua i totes les sentencies
+  en aquest contingudes seran executades. En cas contrari, si l'avaluació retorna falsedat
+  (&false;), finalitzarà l'execució.
+ </simpara>
+ <simpara>
+  Finalment, a la fi de cada iteració, l'<varname>expressio3</varname> serà també avaluada (executada).
+ </simpara>
+ <simpara>
+  Cadascuna de les expressions mencionades, poden aparèixer buides o contenir
+  múltiples expressions separades per comes (,). Dins l'<varname>expressio2
+  </varname> totes les sub-expressions separades per comes de la mateixa
+  seran avaluades, però el resultat final sols s'agafarà de la darrera part
+  (és a dir, prenent el resultat de la sub-expressió situada més a la dreta).
+  Alhora, que no existeixi cap definició de l'<varname>expressio2</varname>,
+  significarà que el cicle o loop, s'executarà indefinidament (aquí, de forma
+  anàloga al que ocórrer en el llenguatge C, l'interpret PHP considerarà de forma
+  implícita que dita expressió retorna veritat, &true;) Cosa que pot resultar
+  més útil del que en principi es podria pensar, ja que molts cops es pretén
+  finalitzar el bucle fent ús del <link linkend="control-structures.break">
+  <literal>break</literal></link> dins un condicional, enlloc de fer servir
+  l'expressió vertadera del <literal>for</literal>.
+ </simpara>
+ <para>
+   Considera els següents exemples. On cadascun d'ells mostra en
+   pantalla els números del 1 al 10:
+  <informalexample>
+   <programlisting role="php">
+<![CDATA[
+<?php
+/* exemple 1 */
+
+for ($i = 1; $i <= 10; $i++) {
+    echo $i;
+}
+
+/* exemple 2 */
+
+for ($i = 1; ; $i++) {
+    if ($i > 10) {
+        break;
+    }
+    echo $i;
+}
+
+/* exemple 3 */
+
+$i = 1;
+for (; ; ) {
+    if ($i > 10) {
+        break;
+    }
+    echo $i;
+    $i++;
+}
+
+/* exemple 4 */
+
+for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
+?>
+]]>
+   </programlisting>
+  </informalexample>
+ </para>
+ <simpara>
+  Aquí, d'acord amb la tasca que realitzen, probablement el millor dels
+  exemples sigui el primer (o potser el quart), però cal atendre a la possibilitat
+  de que la utilització d'expressions buides dins el bucle <literal>for</literal>,
+  pugui ser d'utilitat en moltes altres ocasions.
+ </simpara>
+ <para>
+  PHP també suporta una <link linkend="control-structures.alternative-syntax">
+  sintaxi alternativa</link> (anomenada en anglès "colon syntax")
+  pel que fa al <literal>for</literal>. Podent ser reescrita també així:
+  <informalexample>
+   <programlisting>
+<![CDATA[
+for (expressio1; expressio2; expressio3):
+    sentència/es
+    ...
+endfor;
+]]>
+   </programlisting>
+  </informalexample>
+ </para>
+ <simpara>
+  Resulta un recurs força comú entre molts programadors el iterar per mitjà
+  d'arrays (matrius) tal i com il·lustra el següent exemple:
+ </simpara>
+ <para>
+  <informalexample>
+   <programlisting role="php">
+<![CDATA[
+<?php
+/*
+* Aquesta és una matriu (array) en la que alguns dels seus valors
+* són modificats durant l'execució del loop.
+*/
+$persones = Array(
+        Array('nom' => 'Meritxell', 'ordre' => 215863),
+        Array('nom' => 'Oriol', 'ordre' => 856412)
+        );
+
+for($i = 0; $i < sizeof($persones); ++$i)
+{
+    $persones[$i]['ordre'] = rand(000000, 999999);
+}
+?>
+]]>
+   </programlisting>
+  </informalexample>
+ </para>
+ <simpara>
+  En l'exemple precedent, el problema radica en la segona expressió del <literal>for</literal>.
+  Atès que al obligar-lo a calcular la mida de la matriu en cada iteració, alenteix
+  l'execució del codi. Ara bé, donat que la mida d'aquell no canvia, podem
+  optimitzar-lo fàcilment utilitzant una variable interna que sigui l'encarregada
+  de emmagatzemar dit valor. E utilitzar-la a seguit en la segona expressió
+  del bucle, salvant així el reiterar-la un i altre cop com a sentència.
+  Tal cosa és la que s'ha corregit en el següent exemple:
+ </simpara>
+ <para>
+  <informalexample>
+   <programlisting role="php">
+<![CDATA[
+<?php
+$persones = Array(
+        Array('nom' => 'Meritxell', 'ordre' => 215863),
+        Array('nom' => 'Oriol', 'ordre' => 856412)
+        );
+
+for($i = 0, $tamany = sizeof($persones); $i < $tamany; ++$i)
+{
+    $persones[$i]['ordre'] = rand(000000, 999999);
+}
+?>
+]]>
+   </programlisting>
+  </informalexample>
+ </para>
+</sect1>
+
+<!-- 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
+-->


Property changes on: phpdoc/ca/trunk/language/control-structures/for.xml
___________________________________________________________________
Added: svn:keywords
   + Id Rev Revision Date LastChangedDate LastChangedRevision Author LastChangedBy HeadURL URL
Added: svn:eol-style
   + native

--7e52aec059124f7ba14ef23f48baa7c93d582685--