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

From: Date: Thu, 15 Sep 2011 18:36:51 +0000
Subject: svn: /phpdoc/ca/trunk/language/control-structures/ for.xml
Groups: php.doc.ca 
Request: Send a blank email to doc-ca+get-132@lists.php.net to get a copy of this message
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

« previous php.doc.ca (#132) next »