cvs: phpdoc /hu/language constants.xml control-structures.xml expressions.xml functions.xml oop.xml operators.xml references.xml
| From: | Gyozo Papp | Date: | Sat, 29 Dec 2001 23:57:13 +0000 |
| Subject: | cvs: phpdoc /hu/language constants.xml control-structures.xml expressions.xml functions.xml oop.xml operators.xml references.xml | ||
| Groups: | php.doc | ||
| Request: | Send a blank email to phpdoc+get-969340486@lists.php.net to get a copy of this message | ||
pgerzson Sat Dec 29 18:57:13 2001 EDT
Modified files:
/phpdoc/hu/language constants.xml expressions.xml functions.xml
operators.xml control-structures.xml
references.xml oop.xml
Log:
translation revision (fix inaccurate, loose and misunderstood translations)
with follow up the current EN docs
Index: phpdoc/hu/language/constants.xml diff -u phpdoc/hu/language/constants.xml:1.11 phpdoc/hu/language/constants.xml:1.12 --- phpdoc/hu/language/constants.xml:1.11 Thu Dec 27 19:45:25 2001 +++ phpdoc/hu/language/constants.xml Sat Dec 29 18:57:12 2001 @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="iso-8859-2"?> <!-- EN-Revision: 1.23 Maintainer: goba Status: ready --> -<!-- CREDITS: kgergely --> +<!-- CREDITS: kgergely,pgerzson --> <chapter id="language.constants"> <title>Konstansok</title> <simpara> A konstans egy egyszerû érték azonosítója (neve). Mint ahogy - az elnevezése is mutatja, a program futása során nem változtatható + az elnevezése is mutatja, a program futása során nem változik meg az értéke (a mágikus <constant>__FILE__</constant> és <constant>__LINE__</constant> konstansok az egyedüli kivételek ez alól). A konstansok alapesetben érzékenyek a kis- és nagybetûs @@ -25,9 +25,9 @@ <note> <simpara> - Ebben az esetben egy betû lehet angol betû karakter - a-z-ig és A-Z-ig, valamint az ASCII karakterek - 127-es kódtól 255-ös kódig (0x7f-0xff). + Ebben az esetben egy betû lehet az angol abc egy betûje + a-z-ig és A-Z-ig, valamint a 127-tõl 255-ig terjedõ + (0x7f-0xff) ASCII kódú karakterek. </simpara> </note> @@ -38,8 +38,8 @@ <title>Szintakszis</title> <simpara> Konstanst a <function>define</function> függvénnyel - tudsz létrehozni. Miután definiáltad, késõbb nem - tudod megváltoztatni az értékét, vagy törölni. + lehet létrehozni. Definiálása után késõbb nem + lehet törölni vagy megváltoztatni az értékét. </simpara> <simpara> Csak skaláris adat (<type>boolean</type>, <type>integer</type>, @@ -47,13 +47,13 @@ egy konstans tartalma. </simpara> <simpara> - A konstans értékét a nevének megadásával kaphatod meg. + A konstans értékére a nevének megadásával lehet hivatkozni. A változókkal ellentétben <emphasis>nem</emphasis> szabad <literal>$</literal> jelet tenned a konstand neve elé. - Használhatod még a <function>constant</function> függvényt is, + Használható még a <function>constant</function> függvényt is, ha például a konstans nevét egy változó adja. A <function>get_defined_constants</function> függvénnyel - tudod a definiált konstansok listáját megkapni. + lehet a definiált konstansok listáját megkapni. </simpara> <note> <simpara> @@ -64,35 +64,35 @@ </note> <simpara> Ha egy definiálatlan konstanst próbálsz meg használni, a PHP - úgy veszi, hogy a konstans nevét veszi karaktersorozatként. - Egy + a konstans nevét veszi karaktersorozatként értékül. + Ilyen esetekben egy <link linkend="features.error-handling">notice</link> szintû hiba - keletkezik, ha ez történik. A <function>defined</function> - függvényt használhatod, ha konstans létezését szeretnéd vizsgálni. + keletkezik. A <function>defined</function> + függvény segítségével vizsgálható a konstans létezése. </simpara> <para> A következõk a fontosabb különbségek a változókhoz képest: <itemizedlist> <listitem> <simpara> - A konstansok nevét nem kell dollár jellel <literal>$</literal> kezdeni + A konstansok nevét nem kell dollár jellel <literal>$</literal> kezdeni. </simpara> </listitem> <listitem> <simpara> - A konstansokat akárhol definiálhatod, és akárhol elérheted, a - változók környezeti korlátozásaitól függetlenül + A konstansokat akárhol definiálhatók, és akárhonnan elérhetõk, a + változók környezeti korlátozásaitól függetlenül. </simpara> </listitem> <listitem> <simpara> - A konstansokat nem módosíthatóak, és nem törölhetõek, miután - egyszer beállítod az értéküket + A konstansok nem módosíthatóak, és nem törölhetõek, miután + egyszer létrehozták azokat. </simpara> </listitem> <listitem> <simpara> - A konstansok csak skaláris értékeket tartalmazhatnak + A konstansok csak skaláris értékeket tartalmazhatnak. </simpara> </listitem> </itemizedlist> @@ -118,7 +118,7 @@ <title>Elõre definiált konstansok</title> <para> - Az mindig elérhetõ elõre definiált konstansok: + A mindig elérhetõ, elõre definiált konstansok: <variablelist> @@ -137,9 +137,9 @@ <term>__LINE__ (független a kis- vagy nagybetûs irásmódtól)</term> <listitem> <simpara> - Az aktuális szkripten belüli sor száma. Ha includdal, - vagy require-ral behívott fájlra alkalmazzuk, az - include-olt fájlon belüli pozíciót kapjuk. + Az aktuális szkripten belüli sor száma. Ha include-dal, + vagy require-ral behívott fájlra alkalmazzuk, akkor azon a + fájlon belüli pozíciót kapjuk. </simpara> </listitem> </varlistentry> @@ -229,11 +229,9 @@ <listitem> <simpara> Valami történt, ami lehet, hogy hiba, de lehet, - hogy nem :) A végrehajtás folytatódik. [lehet, - hogy formázza a vinyódat, lehet, hogy nem :)] - Ilyenre példa egy idézõjelek nélküli string, - mint tömbindex, vagy egy változó elérése, - amelynek még nem adtunk értéket. + hogy nem :) A végrehajtás folytatódik. Ilyenre + példa egy idézõjelek nélküli sztring, mint tömbindex, + vagy egy változó elérése, amelynek még nem adtunk értéket. </simpara> </listitem> </varlistentry> Index: phpdoc/hu/language/expressions.xml diff -u phpdoc/hu/language/expressions.xml:1.12 phpdoc/hu/language/expressions.xml:1.13 --- phpdoc/hu/language/expressions.xml:1.12 Thu Dec 27 19:59:26 2001 +++ phpdoc/hu/language/expressions.xml Sat Dec 29 18:57:12 2001 @@ -1,31 +1,29 @@ <?xml version="1.0" encoding="iso-8859-2"?> -<!-- EN-Revision: 1.22 Maintainer: goba Status: ready --> -<!-- CREDITS: kgergely --> +<!-- EN-Revision: 1.19 Maintainer: goba Status: ready --> +<!-- CREDITS: kgergely,pgerzson --> <chapter id="language.expressions"> <title>Kifejezések</title> <simpara> - A kifejezések a PHP legfontosabb építõkövei. A PHP-ban minden, - amit leírsz, egy kifejezés. A lehetõ legegyszerûbb és még - pontos definíciója a kifejezésnek: "valami, aminek - értéke van". + A kifejezések a PHP legfontosabb építõkövei. A PHP-ban majdnem minden, + amit leírsz, egy kifejezés. A lehetõ legegyszerûbb és mégis + pontos definíciója a kifejezésnek: "mindaz, amelynek értéke van". </simpara> <simpara> - A kifejezések legalapvetõbb formái a konstansok és változók. - Amikor beírod, hogy "$a = 5", az '5'-öt az $a változóhoz - rendeled. Az '5'-nek nyilván 5 az értéke, vagy más szavakkal - az '5' egy olyan kifejezés, melynek értéke 5 (itt az '5' - egy egész konstans). + A kifejezések legalapvetõbb formái az állandók és a változók. + Az "$a = 5" az '5'-öt az $a változóhoz rendeli. + Az '5'-nek nyilván 5 az értéke, vagyis más szavakkal + az '5' olyan kifejezés, melynek értéke 5 (itt az '5' + egy egész típusú állandó). </simpara> <simpara> - Ez után a hozzárendelés után azt várod, hogy $a értéke 5 legyen, - sõt, ha azt írod, hogy $b = $a, azt várod, hogy az eredmény - legyen azonos azzal, mintha $b = 5-öt írtál volna. Más - szavakkal az $a egy kifejezés, melynek értéke 5. Ha - minden jól megy, pontosan ez fog történni. + Ez után a hozzárendelés után $a értéke 5 kell legyen, + sõt, $b = $a esetén az eredménynek azonosnak kell lennie azzal, + mint $b = 5 esetén. Másképp megfogalmazva az $a olyan kifejezés, amelynek értéke 5. + Ha minden jól megy, pontosan ez fog történni. </simpara> <para> @@ -44,68 +42,67 @@ </informalexample></para> <simpara> - Feltéve, hogy nem idegen tõled a függvények koncepciója - (ha nem, akkor olvasd el a függvényekrõl szóló fejezetet), - azt várnád, hogy <literal>$c = foo()</literal> lényegében - azonos <literal>$c = 5</literal> beírásával és igazad is van. - A függvények olyan kifejezések, amiknek az értéke a + Megelõlegezzük ,hogy nem idegen Tõled a függvények koncepciója - + ha nem így lenne, akkor olvasd el a függvényekrõl szóló fejezetet. + Amint az elvárható, a <literal>$c = foo()</literal> lényegében + azonos <literal>$c = 5</literal> beírásával. + A függvények olyan kifejezések, amelyeknek az értéke a visszatérési értékük. Mivel foo() 5-tel tér vissza, a - 'foo()' kifejezés értéke 5. Általában a függvényeket - nem arra használjuk, hogy egy bedrótozott számmal - térjenek vissza, hanem azért, hogy valamit kiszámoljanak. + 'foo()' kifejezés értéke 5. Általában a függvények nem arra + használatosak, hogy egy bedrótozott számmal térjenek vissza, + hanem valamilyen számolt származtatott értékkel. </simpara> <simpara> Természetesen a változóknak a PHP-ben nem kell egésznek lenniük, és nagyon gyakran nem is azok. A PHP három féle - skalártípust támogat: egész, lebegõpontos és string + skalártípust támogat: egész, lebegõpontos és sztring értékeket (skalárnak az számít, amit nem lehet kisebb - darabokra bontani, nem úgy, mint a tömböket, például). + darabokra bontani, eltérõen - például - a tömböktõl). A PHP két nem skalár típust is támogat: a tömb és objektum típust. Mindegyikükhöz lehet értéket rendelni, és mindegyikük lehet egy függvény visszatérési értéke. </simpara> <simpara> - Eddig, a PHP/FI 2 használói nem találkoztak semmi különössel. - Mindamellett a PHP továbbviszi a kifejezéseket, úgy mint + Eddig a PHP/FI 2 használói nem találkoztak semmi különössel. + Mindamellett a PHP továbbfejleszti a kifejezés fogalmát, ahogy azt sok hasonló nyelv teszi. A PHP egy kifejezés-orientált - nyelv, olyan szempontból, hogy majdnem minden kifejezés. - Tekintsük a példát, amivel foglalkoztunk, '$a = 5'. Látható, - hogy két értéket hívtunk meg, az egész konstans '5'-öt, - és $a értékét, amit az 5 értékkel frissítettünk. De az az - igazság, hogy még egy érték is van a kifejezésben, a - hozzárendelés maga. A hozzárendelés maga kiértékeli az - átadandó értéket, ebben az esetben az 5-öt. Gyakorlatilag - ez azt jelenti, hogy '$a=5', eltekintve attól, hogy - mit csinál, egy kifejezés, aminek az értéke 5. Ezért ha - olyasmit írunk, hogy '$b=($a=5)', az olyasmi, mintha azt - írtuk volna, hogy '$a=5; $b=5;' (a pontosvesszõ jelöli az - állítás végét). Mivel a hozzárendelés jobbról balra történik, - ez ír6ó zárójelek nélkül is: '$b=$a=5'. + nyelv, abból a szempontból, hogy majdnem minden kifejezés. + Tekintsük a példát, amivel eddig foglalkoztunk: '$a = 5'. Látható, + hogy két értéket szerepel benne: az egész konstans '5' + és $a értéke, amelyet az 5 értékkel frissítettünk. Az + igazság azonban az, hogy még egy érték is van a kifejezésben, a + magáé a hozzárendelésé. A hozzárendelés maga kiértékeli az + átadandó értéket, ebben az esetben az 5-öt. Ez azt jelenti + gyakorlatilag, hogy a '$a=5', a hatásától eltekintve egy kifejezés, + amelynek az értéke 5. Ha ezért olyasmit írunk, hogy '$b=($a=5)', akkor + az olyasmi, mintha '$a=5; $b=5;'-t írtunk volna (a pontosvesszõ jelöli + az állítás végét). Mivel a hozzárendelés jobbról balra történik, + ez írható zárójelek nélkül is: '$b=$a=5'. </simpara> <simpara> - A kifejezés-orientáltság másik jó példája a pre- és - postinkrementáció. A PHP/FI 2 használóinak és sok más + A kifejezés-orientáltság másik jó példája az elõ- és + utónövekményes operátor. A PHP/FI 2 használóinak és sok más nyelvet használónak ismerõs lehet a változó++ és - változó-- jelölés. Ezek az inkrementáló és dekrementáló + változó-- jelölés. Ezek az növelõ és csökkentõ operátorok. A PHP/FI 2-ben a '$a++'-nek nincs értéke (mert nem kifejezés), és ezért nem is lehet semmihez hozzárendelni, vagy valamire használni. A PHP kiterjesztette az inkrementálás/dekrementálás lehetõségeit azzal, hogy ezeket is kifejezésekké alakította, mint ahogyan a C nyelvben is megtették. - A PHP-ben a C nyelvhez hasonlóan kétféle inkrementáció - van: pre- és post. Mindkettõ megnöveli a változó értékét, + A PHP-ben a C nyelvhez hasonlóan kétféle növekményes operátor + van: elõ- és utó(növekményes). Mindkettõ megnöveli a változó értékét, tehát a változó szempontjából nézve nincs különbség, - a kifejezés értékében annál inkább. A pre-inkrementáció, - amit '++$változó'-ként írunk, a növelt értéket adja (A - PHP elõször növeli a változót, majd kiértékeli, innen - a 'pre-'). A post-inkrementáció '$változó++' az eredeti - értéket adja (A PHP elõször kiértékeli, aztán növeli - a változót, innen a 'post-'). [a dekrementációval ugyanez - a helyzet, értelemszerûen] + a kifejezés értékében annál inkább. A '++$változó' formájú + elõnövekményes a megnövelt értéket adja vissza. (A + PHP elõször növeli a változót, majd kiértékeli, innen jön az + 'elõ'). A '$változó++' alakú utónövekményes a változó eredeti + értéket adja. (A PHP elõször kiértékeli, aztán növeli + a változót, innen jön az 'utó'). + [A csökkentõ operátorokkal értelemszerûen ugyanez a helyzet.] </simpara> <simpara> @@ -121,27 +118,22 @@ <simpara> Az utolsó példa, amivel itt foglalkozunk, a kombinált - hozzárendelés-operátor kifejezés. [eredeti: combined - operator-assignment fordícccsa le, aki akarja (tugggya)]. - Lehet, hogy már tudod, hogy ha $a-t eggyel szeretnéd + hozzárendelés-operátor kifejezés. + Már tudhatod, hogy ha $a-t eggyel szeretnéd megnövelni, akkor egyszerûen írhatod, hogy '$a++' vagy - '++$a'. [ha nem, akkor büntibõl olvasd el ezt a fejezetet - 10-szer eddig a pontig]. De mi van akkor, hogy ha - nem eggyel, hanem 3-mal akarod megnövelni? Írhatod - háromszor, hogy '$a++', de ez nem valami hatékony és - üdvözítõ megoldás. Egy sokkal jobb gyakorlat az - '$a=$a+3'. Ez kiértékeli az $a plusz 3-at, és - hozzárendeli az $a-hoz, aminek az lesz az eredménye, - hogy $a megnõ hárommal. De a PHP-ben, mint több más - C-szerû nyelven egy rövidebb formában is írhatod - [és mivel a programozó egyik fõ tulajdonsága a - lustaság, a türelmetlenség és az akaratosság - mellett]: '$a+=3'. Ez pont azt jelenti, hogy - "vedd $a értékét, és adjál hozzá hármat, és írd + '++$a'. Mi van akkor, hogy ha nem eggyel, hanem 3-mal kell + megnövelni? Lehet háromszor egymás után írni, hogy '$a++', + de ez nem valami hatékony és üdvözítõ megoldás. + Sokkal jobb gyakorlat az '$a=$a+3' használata. + Ez kiértékeli az $a + 3-at, és hozzárendeli az $a-hoz, amelynek + az lesz a végsõ eredménye, hogy $a értéke megnõ hárommal. + A PHP-ben - több más C-szerû nyelvhaz hasonlóan - ennél + rövidebb formában is megadható: '$a+=3'. Ez pontosan azt + jelenti, hogy "vedd $a értékét, és adjál hozzá hármat, és írd vissza az eredményt $a-ba". Amellett, hogy rövidebb és érthetõbb, még gyorsabb is. '$a+=3' értéke, mint egy normál értékadásé a hozzárendelt érték. Ez - persze NEM 3, hanem $a plusz 3 (hiszen ezt az + persze NEM 3, hanem $a + 3 (hiszen ezt az értéket rendeltük $a-hoz). Az összes többi kétoperandusú operátort lehet ilyenformán hozzárendelõ-operátorként használni, például '$a-=5' (kivon 5-öt $a-ból), @@ -149,8 +141,8 @@ </simpara> <para> - Van még egy kifejezés, ami elég különösnek tûnhet, - hacsak nem láttad más nyelvekben, a háromoperandusú + Létezik még egy kifejezés, amely elég különösnek tûnhet, + hacsak nem láttad már más nyelvekben: a háromoperandusú feltételes operátor: <informalexample> @@ -161,21 +153,21 @@ </programlisting> </informalexample> - Értéke: ha az elsõ kifejezés értéke igaz (nem nulla), + Értéke: ha az elsõ kifejezés értéke &true;(nem nulla), akkor a második részkifejezés, egyébként a harmadik részkifejezés. Egy segítõ példa: - + <informalexample> <programlisting role="php"> <![CDATA[ -$b = $todo == 'növel' ? $a+5 : $a-5; // $b $a+5 lesz, ha $todo értéke növel +$b = $todo == 'növel' ? $a+5 : $a-5; // $b $a+5 lesz, ha $todo értéke 'növel' // egyébként $b $a-5 lesz -]]> +]]> </programlisting> </informalexample> - + Ez megegyezik az alábbi kóddal: - + <informalexample> <programlisting> <![CDATA[ @@ -186,8 +178,8 @@ </para> <para> - [Vigyázat!] Az alábbi példa segíthet a pre- és - posztinkrementálás, és a kifejezések jobb megértésében: + Az alábbi példa segíthet az elõ- és utónövekményes illetve + csökkentõ operátorok és kifejezéseik jobb megértésében: <informalexample> <programlisting role="php"> @@ -196,12 +188,13 @@ { return $i*2; } + $b = $a = 5; /*ötöt rendelünk $a és $b változókhoz */ -$c = $a++; /* post-inkrementálás, $c 5 lesz, mert +$c = $a++; /* utónövekményes, $c 5 lesz, mert elõször $a kiértékelõdik, csak aztán nõ */ -$e = $d = ++$b; /* pre-inkrementálás, $b növelt értéke (6) +$e = $d = ++$b; /* elõnövekményes, $b növelt értéke (6) adódik tovább $d-nek és $e-nek */ /* itt $d és $e hat */ @@ -221,13 +214,12 @@ <simpara> A fejezet elején azt ígértük, hogy leírjuk a különbözõ - utasítás-típusokat, és ahogy reméljük, a kifejezések - lehetnek állítások. De nem minden utasítás állítás. - Így utasítás, ami 'kif' ';', vagyis egy kifejezés, - amit pontosvesszõ követ. A '$b=$a=5;'-ben $a=5 + utasítás-típusokat, és ígéretnek megfelelõen a kifejezések + lehetnek állítások. Nem minden kifejezés állítás azonban, mert + utasítás, amely illeszkedik 'kif' ';' mintára, vagyis a + pontosvesszõvel folytatodó kifejezés. A '$b=$a=5;'-ben $a=5 érvényes kifejezés, de nem érvényes utasítás önmagában. - A teljes '$b=$a=5;' már igen. [Gábor elmondta nekem, hogy: - A lényeg, hogy az $a=5 nem utasítás, mivel nem követi ;] + A teljes '$b=$a=5;' már igen. </simpara> <simpara> @@ -238,7 +230,7 @@ A &true; és &false; konstansok (nevük nem függ a kis- és nagybetûs írásmódtól) a PHP két lehetséges logikai értékei. Amikor szükséges, a kifejezések automatikusan - logikai értékké alakulnak. Lásd a + logikai értékké alakulnak. Lásd a <link linkend="language.types.typecasting">típuskonverziókról szóló fejezetet</link> további részletekért. </simpara> @@ -246,14 +238,13 @@ <simpara> A PHP a kifejezések egy teljes és hatékony megvalósítását biztosítja, és teljes dokumentációja meghaladja e kézikönyv - kereteit. A fenti példák rávilágítanak, hogy milyen állatfaj - a kifejezés és hogyan kell létrehozni hasznos kifejezéseket. - A kézikönyv hátralevõ részében ahol azt írjuk, hogy - <replaceable>expr</replaceable> akkor egy érvényes - PHP kifejezést értünk.</simpara> + kereteit. A fenti példák rávilágítanak, hogy mi is az a + kifejezés, és hogyan kell létrehozni hasznos kifejezéseket. + A kézikönyv hátralevõ részében az <replaceable>expr</replaceable> + alatt egy érvényes PHP kifejezést értünk.</simpara> </chapter> - + <!-- Keep this comment at the end of the file Local variables: mode: sgml Index: phpdoc/hu/language/functions.xml diff -u phpdoc/hu/language/functions.xml:1.13 phpdoc/hu/language/functions.xml:1.14 --- phpdoc/hu/language/functions.xml:1.13 Thu Dec 27 19:45:25 2001 +++ phpdoc/hu/language/functions.xml Sat Dec 29 18:57:12 2001 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="iso-8859-2"?> <!-- EN-Revision: 1.20 Maintainer: goba Status: ready --> -<!-- CREDITS: kgergely --> +<!-- CREDITS: kgergely, pgerzson --> <chapter id="functions"> <title>Függvények</title> @@ -29,19 +29,21 @@ definíciók is. </simpara> <simpara> - PHP 3-ban a függvényeket definiálnod kell használatuk elõtt. - Nincs ilyen megkötés PHP 4-ben. + PHP 3-ban a függvényeket definiálni kell, mielõtt hivatkozás történik rájuk + (függvényhívás elõtt). + PHP 4-ben nincs ez a megkötés. </simpara> <simpara> - A PHP nem támogatja a függvények polimorfizmusát, a függvényeket - nem tudod undefiniálni vagy újradefiniálni a már definiált függvényeket. + A PHP nem támogatja a függvények polimorfizmusát (többalakúságát), a + függvényekdefiníciókat nem lehet megszüntetni vagy újradefiniálni egy + már definiált függvényeket. </simpara> <simpara> A PHP 3 nem támogatja a változó számú függvényargumentumokat, bár az argumentumok kezdõértéke támogatott. Lásd az <link linkend="functions.arguments.default">Argumentumok kezdõértéke</link> címû részt bõvebb információért. - A PHP 4 mindkettõt támogatja. Lásd + A PHP 4 mindkettõ lehetõséget támogatja. Lásd a <link linkend="functions.variable-arg-list">Változó számú függvényargumentumok</link> címû részt és a <function>func_num_args</function>, <function>func_get_arg</function> és a <function>func_get_args</function> függvényeket részletesebb leírásért. @@ -57,16 +59,16 @@ ami egy vesszõvel határolt változó és/vagy konstanslista. </simpara> <para> - A PHP támogatja az érték szerinti (ez az alapértelmezett), - <link linkend="functions.arguments.by-reference">cím szerinti - paraméterátadást</link>, és az <link + A PHP támogatja az érték szerinti (ez az alapértelmezett) + <link linkend="functions.arguments.by-reference">referenciakénti + paraméterátadást</link> is, és az <link linkend="functions.arguments.default">argumentumok kezdõértékét</link>. A változó hosszúságú argumentumlisták csak a PHP 4-ben jelentek meg. Lásd a <link linkend="functions.variable-arg-list">változó hosszúságú argumentumlistákat</link> és a <function>func_num_args</function>, <function>func_get_arg</function> és a <function>func_get_args</function> - függvényeket részletesebb leírásért. Hasonló hatás érhetõ el PHP 3-ban - a függvénynek tömbargumentum átadásával: + függvényeket részletesebb leírásért. PHP 3-ban hasonló hatás érhetõ el + a függvénynek tömb típusú változó paraméterként történõ átadásával: <informalexample> <programlisting role="php"> <![CDATA[ @@ -80,18 +82,19 @@ </para> <sect2 id="functions.arguments.by-reference"> - <title>Argumentumok cím szerinti átadása</title> + <title>Referencia szerinti argumentumfeltöltés</title> <simpara> - Alapértelmezésben a függvényargumentumok érték szerint adódnak át + Alapértelmezésben a függvény paraméterei érték szerint adódnak át (vagyis ha megváltoztatod a változót a függvényen belül, annak a függvényen kívülre nincs hatása). Ha szeretnéd megengedni, hogy - a függvény módosítsa az argumentumát, cím szerint kell átadnod. + a függvény módosítsa az átadott paramétereket, referencia szerint + kell átadni azokat. </simpara> <para> - Ha azt szeretnéd, hogy egy függvényargumentum mindig cím szerint - adódjon át, a függvénydefinícióban az argumentum neve elé tegyél - egy & jelet. + Ha egy függvényargumentum mindig referencia szerint kell átadni, + akkor a függvénydefinícióban az argumentum neve elé egy & + jelet kell írni. <informalexample> <programlisting role="php"> <![CDATA[ @@ -108,10 +111,9 @@ </para> <para> - Ha egy olyan függvénynél szeretnél paramétert cím szerint átadni, - amely ezt nem teszi meg alapból, akkor a függvényhívásban az argumentum - neve elé kell tenned egy & jelet: - + Ha egy olyan függvénynél kell a paramétert referencia szerint átadni, + amely ezt nem teszi meg alapból, akkor a függvény hívásakor kell a + paraméterlistában a neve elé kell tenni az & jelet: <informalexample> <programlisting role="php"> <![CDATA[ @@ -164,10 +166,9 @@ pl. változó vagy objektum. </simpara> <para> - Figyelj rá, hogy amikor kezdõértékeket definiálsz, a kezdõértékkel - rendelkezõ paraméterek más argumentumoktól jobbra helyezkedjenek el; - különben a dolgok nem úgy mennek majd, ahogy várnád [hanem úgy, ahogy írtad :)]. - Nézd meg a következõ kódot: + Figyelj arra, hogy a kezdõértékkel rendelkezõ argumentumok más argumentumoktól + jobbra helyezkedjenek el; különben a dolgok nem úgy mennek majd, ahogy azt várnád + [hanem úgy, ahogy írtad :)]. Lásd a következõ kódot: <informalexample> <programlisting role="php"> <![CDATA[ @@ -176,7 +177,7 @@ return "Készítek egy köcsög $flavour ízû $type-t.\n"; } -echo joghurtot_keszit ("eper"); // nem úgy mûködik, mint szeretnéd !?! +echo joghurtot_keszit ("eper"); // nem úgy mûködik, mint szeretnéd !?!? ]]> </programlisting> </informalexample> @@ -237,7 +238,7 @@ <simpara> A PHP 4 támogatja a változó hosszúságú argumentumlistát a felhasználók által definiált függvényekben. Valóban nagyon - egyszerû, a <function>func_num_args</function>, + egyszerû kezelni ezt a <function>func_num_args</function>, <function>func_get_arg</function> és a <function>func_get_args</function> függvényekkel. </simpara> @@ -255,7 +256,7 @@ <title>Visszatérési értékek</title> <para> - Az opcionális return állítást használva adhatnak vissza értéket + Az elhagyható return állítást használva adhatnak vissza értéket a függvények. Bármely típus visszaadható, beleértve a listákat és az objektumokat is. <informalexample> @@ -269,16 +270,16 @@ ]]> </programlisting> </informalexample> - </para> - - <para> - Több értéket nem tud visszaadni a függvény, de hasonló - hatás érhetõ el úgy, ha listát adsz vissza. <note> <simpara> [Ha nincs return, az utolsó kifejezés értékével tér viszsza a függvény] </simpara> </note> + </para> + + <para> + Több értéket nem tud visszaadni a függvény, de hasonló + hatás érhetõ el ezen többszörös értékek listába szervezésével. <informalexample> <programlisting role="php"> <![CDATA[ @@ -292,10 +293,9 @@ </informalexample> </para> <para> - Ha referenciát szeretnél függvény visszatérési - értékeként adni, a & referencia operátort kell alkalmaznod - a függvény deklarálásakor és a a visszatérési érték - megadásakor is. + Ha a függvénynek referenciával kell visszatérnie, akkor az & referencia + operátort kell alkalmaznod a függvény deklarásákor és a a visszatérési érték + megadásakor is. <informalexample> <programlisting role="php"> <![CDATA[ @@ -321,18 +321,18 @@ (kivéve persze, hogy a 'function'-t ki kell cserélned 'old_function'-ra) </simpara> <simpara> - Ez egy helytelenített függvény, és csak a PHP/FI2->PHP 3 konverter - használhatja. + Ez egy ellenjavallt tulajdonság, és csak a PHP/FI2->PHP 3 konverter + használhatja. </simpara> <warning> <para> Az <literal>old_function</literal> segítségével deklarált függvényeket - nem hívhatod a PHP belsõ részébõl. Más dolgok mellett ez azt jelenti, hogy + nem hívhatod a PHP belsõ részébõl. Több minden mellett ez azt jelenti, hogy nem használhatod olyan függvényekben, mint az <function>usort</function>, <function>array_walk</function>, és a <function>register_shutdown_function</function>. - Meg tudod kerülni ezt a korlátozást úgy, hogy írsz egy keretfüggvényt, - (normál PHP 3 formában) ami meghívja az <literal>old_function</literal>-t. + Ez a korlátozás megkerülhetõ egy olyan keretfüggvény megírásával (normál PHP 3 formában), + amely meghívja az <literal>old_function</literal>-t. </para> </warning> @@ -343,10 +343,10 @@ <para> A PHP lehetõvé teszi a függvényváltozók használatát. - Ez azt jelenti, hogy ha egy változónév után zárójelek vannak, akkor - a PHP keresni fogja az azonos nevû függvényt bármilyen értékrõl legyen - is szó, és megpróbálja végrehajtani. Ezt többek között használhatod - callback, függvénytáblák implementálására... + Ha egy változónevet kerek zárójelek követnek, akkor a PHP megkeresi + a változó értékével azonos nevû függvényt, és megpróbálja azt végrehajtani. + Ezt többek között visszahívandó (callback) függvények vagy függvénytáblák + implementálására használható. </para> <para> Index: phpdoc/hu/language/operators.xml diff -u phpdoc/hu/language/operators.xml:1.14 phpdoc/hu/language/operators.xml:1.15 --- phpdoc/hu/language/operators.xml:1.14 Thu Dec 27 19:38:16 2001 +++ phpdoc/hu/language/operators.xml Sat Dec 29 18:57:12 2001 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="iso-8859-2"?> <!-- EN-Revision: 1.31 Maintainer: goba Status: ready --> -<!-- CREDITS: kgergely --> +<!-- CREDITS: kgergely,pgerzson --> <chapter id="language.operators"> <title>Operátorok</title> @@ -66,9 +66,9 @@ <sect1 id="language.operators.assignment"> <title>Hozzárendelõ operátorok</title> <simpara> - Az alapvetõ hozzárendelõ operátor az "=". Talán - elsõre azt hiszed, hogy ez az "egyenlõ valamivel" - jele. De nem. Valójában azt jelenti, hogy a bal oldali + Az alapvetõ hozzárendelõ operátor az "=". Elsõre + azt hihetnénk, hogy ez az "egyenlõ valamivel" + jele. Valójában azt jelenti, hogy a bal oldali operandus [ami az egyenlõségjel bal oldalán áll] a jobb oldali kifejezést kapja értékül. </simpara> @@ -85,10 +85,10 @@ </informalexample> </para> <para> - Sõt, az alapvetõ hozzárendelõ operátoron felül - vannak "kombinált" operátorok is az összes - kétoperandusú aritmetikai és stringoperátok számára, - amik lehetõvé teszik, hogy használjunk egy változót + Az alapvetõ hozzárendelõ operátoron felül + vannak ún. "kombinált" operátorok is az összes + kétoperandusú aritmetikai és sztring operátorok számára, + amelyek lehetõvé teszik, hogy használjunk egy változót egy kifejezésben, majd rögtön be is állítsuk a változót a kifejezés értékére. Például: <informalexample> @@ -97,24 +97,23 @@ $a = 3; $a += 5; // $a-t 8-ra állítja, mintha $a = $a + 5;-öt írtunk volna $b = "Csecs "; -$b .= "Emõ"; // $b-t "Csecs Emõ"-re állítja, egyenértékû: $b = $b . "Emõ"; +$b .= "Emõ"; // $b "Csecs Emõ" lesz, egyenértékû párja: $b = $b . "Emõ"; ]]> </programlisting> </informalexample> </para> <para> - A hozzárendelés az eredeti változót újba másolja (érték - szerint), így az egyiken elvégzett változtatások a másikat - nem érintik. Ezt néha fontos tudni, például ha mondjuk - egy nagy tömböt kell másolni egy sokszor végrehajtott - ciklus belsejében. A PHP 4 támogatja paraméterek érték - szerinti átadását a <computeroutput>$var = - &$othervar;</computeroutput> szintaxissal, - de ez PHP 3-ban nem mûködik. A 'cím szerinti paraméterátadás' - azt jelenti, hogy mindkét változó ugyanarra az adatra - mutat, tehát semmi nem másolódik sehová [a változó címét - kivéve...] További információkat a referenciákról a <link + A hozzárendelés az eredeti változót az újba másolja érték + szerint, így az egyiken elvégzett változtatások a másikat + nem érintik. Ezt fontos tudni, például egy sokszor végrehajtott + ciklus belsejében nagy tömbök másolásakor. A PHP 4 támogatja a + <computeroutput>$var =&$othervar;</computeroutput> szintaxisú + referencia szerinti érték hozzárendelést is, + de ez PHP 3-ban nem mûködik. A 'referencia szerinti értékhozzárendelés' + azt jelenti, hogy mindkét változó ugyanarra az adatra fog mutatni, és + nem történik meg a változó értékének lemásolása. + További információkat a referenciákról a <link linkend="language.references">Referenciák részletesen</link> címû fejezetben olvashatsz. </para> @@ -124,8 +123,8 @@ <sect1 id="language.operators.bitwise"> <title>Bitorientált operátorok</title> <simpara> - A bitorientált operátorok teszik lehetõvé, hogy egy - egészen belül bizonyos biteket beállítsunk, vagy kimaszkoljunk. + A bitorientált operátorok teszik lehetõvé, hogy egész típusú számokon + belül bizonyos biteket beállítsunk, vagy lefedjünk (maszkolás). </simpara> <table> @@ -142,22 +141,22 @@ <row> <entry>$a & $b</entry> <entry>És</entry> - <entry>Azon helyeken, ahol mind $a-ban, mind $b-ben '1' volt, - az eredményben '1' lesz, egyébként '0'.</entry> + <entry>Ott lesz '1' az eredményben, ahol $a és $b mindegyikében az a bit '1'-es. + Minden más biten '0'.</entry> </row> <row> <entry>$a | $b</entry> <entry>Vagy</entry> - <entry>Ott lesz '1' az eredmény, ahol vagy $a-ban, vagy $b-ben '1' állt.</entry> + <entry>Ott lesz '1' az eredményben, ahol $a és $b közül legalább az egyik azon a bitje '1'-es. + Minden más biten '0'.</entry> </row> <row> <entry>$a ^ $b</entry> <entry>Kizáró vagy</entry> - <entry>Ott lesz '1', ahol vagy $a-ban, vagy $b-ben '1' áll, de csak az - egyikben. [Más közelítésben ott lesz '1' az eredmény, ahol különbözõ bitek + <entry>Ott lesz '1' az eredményben, ahol $a és $b közül csakis pontosan az egyikben '1' állt. Minden más biten '0'. + [Más közelítésben ott lesz '1' az eredményben, ahol különbözõ bitek álltak $a-ban és $b-ben; megint más közelítésben $a azon bitjei - invertálódnak, amely helyeken $b-ben '1' áll (=$b azon bitjeit - invertálja, ahol $a-ban '1' áll)]</entry> + invertálódnak, amely helyeken $b-ben '1' áll]</entry> </row> <row> <entry>~ $a</entry> @@ -167,15 +166,15 @@ <row> <entry>$a << $b</entry> <entry>Eltolás balra</entry> - <entry>$a bitjeit $b-vel balra tolja (minden tolás 2-vel való + <entry>$a bitjeit $b számú bittel balra tolja (minden bitnyi eltolás 2-vel való szorzást jelent [amíg el nem fogynak a bitek, utolsó helyen elõjelbit van ?!])</entry> </row> <row> <entry>$a >> $b</entry> <entry>Eltolás jobbra</entry> - <entry>$a bitjeit $b-vel jobbra tolja (minden tolás 2-vel való - [egész!]osztást jelent [vigyázz! negatív számot inkább ne tolj jobbra!!])</entry> + <entry>$a bitjeit $b számú bittel jobbra tolja (minden bitnyi eltolás 2-vel való + egész-osztást jelent. [Vigyázz, negatív számot inkább ne tolj jobbra!])</entry> </row> </tbody> </tgroup> @@ -204,55 +203,55 @@ <row> <entry>$a == $b</entry> <entry>Egyenlõ</entry> - <entry>Igaz, ha $a és $b értéke egyenlõ</entry> + <entry>Igaz (&true;), ha $a és $b értéke egyenlõ</entry> </row> <row> <entry>$a === $b</entry> <entry>Azonos</entry> - <entry>Igaz, ha $a és $b értéke egyenlõ, és azonos típusúak (csak PHP 4)</entry> + <entry>Igaz (&true;), ha $a és $b értéke egyenlõ, és azonos típusúak (csak PHP 4)</entry> </row> <row> <entry>$a != $b</entry> <entry>Nem egyenlõ</entry> - <entry>Igaz, ha $a és $b értékei különbözõk</entry> + <entry>Igaz (&true;), ha $a és $b értékei különbözõk</entry> </row> <row> <entry>$a <> $b</entry> <entry>Nem egyenlõ</entry> - <entry>Igaz, ha $a és $b értékei különbözõk</entry> + <entry>Igaz (&true;), ha $a és $b értékei különbözõk</entry> </row> <row> <entry>$a !== $b</entry> <entry>Nem azonos</entry> - <entry>Igaz, ha $a és $b értékei vagy típusai különbözõk (csak PHP 4)</entry> + <entry>Igaz (&true;), ha $a és $b értékei vagy típusai különbözõk (csak PHP 4)</entry> </row> <row> <entry>$a < $b</entry> <entry>Kisebb mint</entry> - <entry>Igaz, ha $a szigorúan kisebb, mint $b</entry> + <entry>Igaz (&true;), ha $a szigorúan kisebb, mint $b</entry> </row> <row> <entry>$a > $b</entry> <entry>Nagyobb mint</entry> - <entry>Igaz, ha $a szigorúan nagyobb, mint $b</entry> + <entry>Igaz (&true;), ha $a szigorúan nagyobb, mint $b</entry> </row> <row> <entry>$a <= $b</entry> <entry>Kisebb, vagy egyenlõ</entry> - <entry>Igaz, ha $a kisebb, vagy egyenlõ, mint $b</entry> + <entry>Igaz (&true;), ha $a kisebb, vagy egyenlõ, mint $b</entry> </row> <row> <entry>$a >= $b</entry> <entry>Nagyobb, vagy egyenlõ</entry> - <entry>Igaz, ha $a nagyobb, vagy egyenlõ, mint $b</entry> + <entry>Igaz (&true;), ha $a nagyobb, vagy egyenlõ, mint $b</entry> </row> </tbody> </tgroup> </table> <para> - Van egy feltételes operátor is, a "?:" (ternális) - operátor, ami úgy muködik, mint a C-ben és sok más nyelvben. + A feltételes "?:" (ternális) + operátor úgyanúgy mûködik, mint C-ben és sok más nyelvben. <informalexample> <programlisting> @@ -263,9 +262,9 @@ </informalexample> A kifejezés <replaceable>kif2</replaceable>-t értékeli ki, ha - <replaceable>kif1</replaceable> igaznak bizonyul, és + <replaceable>kif1</replaceable> igaznak bizonyul (&true;), és <replaceable>kif3</replaceable>-at, ha - <replaceable>kif1</replaceable> hamis. + <replaceable>kif1</replaceable> hamis (&false;). </para> </sect1> @@ -274,8 +273,8 @@ <title>Hibakezelõ operátorok</title> <simpara> - A PHP egy hibakezelõ operátort támogat, az at (kukac) jelet (@). - Ha egy PHP kifejezés elé írod, a kifejezés által esetlegesen + A PHP egy hibakezelõ operátort támogat, az at jelet (@ - kukac). + PHP kifejezés elé írva a kifejezés által esetlegesen generált hibaüzenete(ke)t figyelmen kívül hagyja a rendszer. </simpara> @@ -284,8 +283,8 @@ szolgáltatás be van kapcsolva, bármilyen a kifejezés által generált hibaüzenet a $php_errormsg globális változóba kerül tárolásra. Ez a változó minden hiba esetén felülíródik, - ezért ellenõrizd minél hamarabb a kifejezést követõen - ha használható információt szeretnél kapni. + ezért használható információk kinyerése érdekében a kifejezést + követõen ezt minél hamarabb ellenõrizni kell. </simpara> <para> @@ -307,27 +306,27 @@ </para> <note> <simpara> - A @ operátor csak kifejezésekre mûködik. Egy egyszerû ökölszabály, - hogy ha valaminek az értékét tudod venni, akkor az elé a @ - operátor is oda tehetõ. Például használhatod változók, - függvények és <function>include</function> hivások, konstansok, - neve elõtt és sok más esetben. Nem írhatod azonban oda függvény - és osztály definíciók, vagy nyelvi szerkezetek (mint például + A @ operátor csak kifejezésekre mûködik. Egyszerû ökölszabályként + alkalmazandó, ha valaminek az értelmezett az értéke, akkor az elé a @ + operátor is oda tehetõ. Ekképpen például használható változók, + függvények és <function>include</function> hívások, állandók + neve elõtt és sok más esetben. Nem használható azonban függvény + és osztály definíciók vagy nyelvi szerkezetek (mint például <literal>if</literal> és <literal>foreach</literal> utasítások) - elé. + elõtt. </simpara> </note> <simpara> - Lásd még: <function>error_reporting</function>. + Lásd még: <function>error_reporting</function>! </simpara> <warning> <para> Jelenleg a "@" hibakezelõ operátor kikapcsolja azon kritikus hibák - jelentését is, amik megállítják a szkript futását. Más problémák - mellett, ha egy függvénybõl érkezõ hibaüzenetek elnyelésére - használod a "@" jelet, meg fog állni a szkript futása, ha - nem létezik a megadott függvény, vagy elírtad a nevét. + jelentését is, amelyek megszakítják a szkript futását. Más problémák + mellett, ha függvénybõl érkezõ hibaüzenetek elnyelésére + használod a "@" jelet, le fog állni a szkript futása, ha + nem létezik a megadott függvény vagy elírtad annak nevét. </para> </warning> @@ -338,19 +337,16 @@ <title>Végrehajtó operátorok</title> <para> - A PHP-nek egy végrehajtó operátora van: [na nem kell semmi - rosszra gondolni, semmi köze az adóhatósághoz...]: - a visszaidézõjel [aki tudja az igazi nevét, ne rejtse - véka alá!] (``). Ezek nem szimpla idézõjelek! A - PHP megpróbálja a string tartalmát, mint egy shell command-ot - [kagyló parancsot :)] végrehajtani: a kimenet lesz az egész - értéke (nem kiírja a képernyõre, hanem hozzárendelhetõ - egy változóhoz). + A PHP-ban létezik egy program-végrehajtó operátor: a visszaidézõjel + [aki tudja az igazi nevét, ne rejtse véka alá!] (``). Ezek nem szimpla idézõjelek! A + PHP megpróbálja a sztring tartalmát parancssorból futtatandó utasításként + végrehajtani, amelynek a kimenete lesz az operátor értéke. + Ez nem egyszerûen a kimenetre kerül, hanem hozzárendelhetõ egy változóhoz. </para> <para> [Az alábbi kis példa az aktuális könyvtár tartalmát - (hosszú lista, rejtett fájlok is) formázva írja ki (illetve - fix szélességû betûket használva, újsor karaktereket + (hosszú lista, rejtett fájlok is) formázva írja ki + (fix szélességû betûket használva, újsor karaktereket tiszteletben tartva)] <informalexample> @@ -385,8 +381,8 @@ <title>Növelõ/csökkentõ operátorok</title> <para> - A PHP támogatja a C-szerû pre- és postinkrementáló - és dekrementáló operátorokat. + A PHP támogatja a C-szerû ún. elõ- és utónövekményes ill. + csökkentõ operátorokat. </para> <table> @@ -402,22 +398,22 @@ <tbody> <row> <entry>++$a</entry> - <entry>Preinkrementálás</entry> + <entry>elõnövekményes</entry> <entry>Növeli $a-t eggyel, majd visszaadja $a értékét</entry> </row> <row> <entry>$a++</entry> - <entry>Postinkrementálás</entry> + <entry>utónövekményes</entry> <entry>Visszaadja $a értékét, majd növeli $a-t eggyel</entry> </row> <row> <entry>--$a</entry> - <entry>Predekrementálás</entry> + <entry>elõcsökkentõ</entry> <entry>Csökkenti $a-t eggyel, majd visszaadja $a értékét</entry> </row> <row> <entry>$a--</entry> - <entry>Postdekrementálás</entry> + <entry>utócsökkentõ</entry> <entry>Visszaadja $a értékét, majd csökkenti $a-t eggyel</entry> </row> </tbody> @@ -430,22 +426,22 @@ <programlisting role="php"> <![CDATA[ <?php -echo "<h3>Postinkrementálás</h3>"; +echo "<h3>Utónövekményes</h3>"; $a = 5; echo "5-nek kell lennie: " . $a++ . "<br>\n"; echo "6-nak kell lennie: " . $a . "<br>\n"; -echo "<h3>Preinkrementálás</h3>"; +echo "<h3>Elõnövekményes</h3>"; $a = 5; echo "6-nak kell lennie: " . ++$a . "<br>\n"; echo "6-nak kell lennie: " . $a . "<br>\n"; -echo "<h3>Postdekrementálás</h3>"; +echo "<h3>Elõcsökkentõ</h3>"; $a = 5; echo "5-nek kell lennie: " . $a-- . "<br>\n"; echo "4-nek kell lennie: " . $a . "<br>\n"; -echo "<h3>Predekrementálás</h3>"; +echo "<h3>Utócsökkentõ</h3>"; $a = 5; echo "4-nek kell lennie: " . --$a . "<br>\n"; echo "4-nek kell lennie: " . $a . "<br>\n"; @@ -475,32 +471,32 @@ <row> <entry>$a and $b</entry> <entry>És</entry> - <entry>Csak akkor igaz, ha mind $a mind $b igazak</entry> + <entry>Pontosan akkor igaz (&true;), ha mind $a mind $b igazak (&true;).</entry> </row> <row> <entry>$a or $b</entry> <entry>Vagy</entry> - <entry>Akkor igaz, ha $a és $b között van igaz</entry> + <entry>Pontosan akkor igaz (&true;), ha $a és $b között van igaz (&true;).</entry> </row> <row> <entry>$a xor $b</entry> <entry>Kizáró vagy</entry> - <entry>Akkor igaz, ha $a és $b közül pontosan egy igaz</entry> + <entry>Pontosan akkor igaz (&true;), ha $a és $b közül pontosan egy igaz (&true;).</entry> </row> <row> <entry>! $a</entry> <entry>Tagadás</entry> - <entry>Igaz, ha $a nem igaz</entry> + <entry>Pontosan akkor igaz (&true;), ha $a nem igaz (&true;).</entry> </row> <row> <entry>$a && $b</entry> <entry>És</entry> - <entry>Csak akkor igaz, ha mind $a mind $b igazak</entry> + <entry>Pontosan akkor igaz (&true;), ha mind $a mind $b igaz (&true;).</entry> </row> <row> <entry>$a || $b</entry> <entry>Vagy</entry> - <entry>Akkor igaz, ha $a és $b között van igaz</entry> + <entry>Pontosan akkor igaz (&true;), ha $a és $b között van igaz (&true;).</entry> </row> </tbody> </tgroup> @@ -522,28 +518,26 @@ <literal>1 + 5 * 3</literal> kifejezésben, a kifejezés értéke 16, és nem 18, mert a szorzás operátorának, a ("*")-nak nagyobb precedenciája van, mint az - összeadásénak ("+"). Zárójeleket használhatsz - a precedencia meghatározására, ha szükséges. Például - <literal>(1 + 5) * 3</literal> eredménye <literal>18</literal> + összeadásénak ("+"). Zárójelek segítségével tetszõleges + precedenciát lehet felállítani egy kifejezésen belül, ha szükséges. + Például a <literal>(1 + 5) * 3</literal> eredménye <literal>18</literal> lesz. </para> <para> [Az asszociativitás talán megér egy kis magyarázatot. Ez azt határozza meg, hogy az adott szinten levõ - operátorok egymás utáni zárójel nélküli használatát hogyan - értelmezi a fordító. Talán egy példával kicsit érthetõbbé - tehetõ: pl. 1-2+3 értelmezhetõ (1-2)+3-nak, eredménye 2, - vagy 1-(2+3)-nak, eredménye -4. Az elõbbi kiértékelés, - (mely <emphasis>balról jobbra asszociatív</emphasis>) a + operátorok egymás utáni, zárójel nélküli használatát hogyan + értelmezi a fordító. Egy példán keresztül talán érthetõbbé + válik: 1-2+3 értelmezhetõ (1-2)+3-nak (= 2), vagy 1-(2+3)-nak (= -4). + Az elõbbi kiértékelés, amely <emphasis>balról jobbra asszociatív</emphasis>, a helyes ebben az esetben. A második kiértékelés pedig - <emphasis>jobbról balra asszociatív</emphasis> (ilyen - például a hatványozás, ami nincs a nyelvben implementálva. - Viszont van egy pow nevû függvény. Szóval 2**3**2 (ahol - ** <emphasis>lenne</emphasis> a hatványozás) helyesen - 2 a kilencediken = 512 lenne.) Vannak nem köthetõ - operátorok is, ilyenek az összehasonlító operátorok. Tehát - <emphasis>nem</emphasis> írható, hogy 2<$x<4.] - + <emphasis>jobbról balra asszociatív</emphasis> - ilyen lenne + például a hatványozás, amely nincs a nyelvben implementálva (erre szolgál + <function>pow</function>). Ha a ** <emphasis>lenne</emphasis> a + hatványozás, akkor a 2**3**2 helyesen 2 a 9-en = 512 lenne. + Vannak nem köthetõ (nem asszociatív) operátorok is, ilyenek az + összehasonlító operátorok. A PHP-ban tehát <emphasis>nem</emphasis> + értelmes a 2<$x<4 kifejezés.] </para> <para> Az alábbi táblázat az operátorokat precedenciájuk @@ -649,12 +643,12 @@ <title>String operátorok</title> <simpara> Két string operátor van. Az egyik az összefûzés operátor - ('.'), ami bal és jobb argumentumának összefûzöttjével + ('.'), amely bal és jobb oldali operandusának összefûzöttjével tér vissza. A második az összefûzõ-hozzárendelõ operátor - ('.='), ami szövegesen hozzáfûzi a jobb argumentumát a bal oldali - argumentum végéhez. Olvasd el a <link + ('.='), amely hozzáfûzi a jobb oldalon szereplõ szöveges értéket a bal oldali + operandus végéhez. Olvasd el a <link linkend="language.operators.assignment">Hozzárendelõ - operátorok</link> címû részt. + operátorok</link> címû részt! </simpara> <para> <informalexample> Index: phpdoc/hu/language/control-structures.xml diff -u phpdoc/hu/language/control-structures.xml:1.14 phpdoc/hu/language/control-structures.xml:1.15 --- phpdoc/hu/language/control-structures.xml:1.14 Sat Dec 15 09:49:54 2001 +++ phpdoc/hu/language/control-structures.xml Sat Dec 29 18:57:12 2001 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="iso-8859-2"?> -<!-- EN-Revision: 1.37 Maintainer: goba Status: ready --> -<!-- CREDITS: kgergely --> +<!-- EN-Revision: 1.48 Maintainer: goba Status: ready --> +<!-- CREDITS: kgergely,pgerzson --> <chapter id="control-structures"> <title>Vezérlési szerkezetek</title> @@ -20,24 +20,29 @@ <title><literal>if</literal></title> <para> Az <literal>if</literal> szerkezet az egyik legfontosabb - szerkezete a legtöbb nyelvnek - így a PHP-nek is. A PHP - biztosít egy C-szerû <literal>if</literal> szerkezetet: + szerkezete a legtöbb nyelvnek - így a PHP-nek is. A PHP a C-ben megismerthez + hasonló <literal>if</literal> szerkezettel bír: <informalexample> <programlisting> +<![CDATA[ if (kifejezés) utasítás +]]> </programlisting> </informalexample> </para> <simpara> - Amint a kifejezésekrõl szóló fejezetben szerepel, a kifejezés - igazságértéke értékelõdik ki. Ha <replaceable>kifejezés</replaceable> - &true;, a PHP végrehajtja az utasítást; ha - &false; figyelmen kívül hagyja. + Amint a <link linkend="language.expressions">kifejezésekrõl szóló fejezetben</link> + szerepel, a kifejezés logikai értéke értékelõdik ki. + Ha <replaceable>kifejezés</replaceable> &true;, akkor a PHP végrehajtja az utasítást; + ha &false;, akkkor figyelmen kívül hagyja. Arról, hogy mely értékek tekinthetõk + &false;-nak, a <link + linkend="language.types.boolean.casting">Logikai értékké alakítás</link> c. + fejezetben olvashatsz. </simpara> <para> Az alábbi példa kiírja, hogy <computeroutput>a nagyobb, - mint b</computeroutput> ha <replaceable>$a</replaceable> nagyobb, + mint b</computeroutput>, ha <replaceable>$a</replaceable> nagyobb, mint <replaceable>$b</replaceable>: <informalexample> <programlisting role="php"> @@ -49,13 +54,12 @@ </informalexample> </para> <para> - Gyakran sok utasítást kellene feltételesen végrehajtanod. - Persze, hogy nem kell minden utasításhoz külön - <literal>if</literal>-et írnod. Inkább foglald - utasításblokkba az utasításokat. Például az alábbi kód - kiírja, hogy <computeroutput>a nagyobb, mint b</computeroutput> + Gyakran sok utasítást kell feltételhez kötve végrehajtani. + Természetesen nem kell minden utasításhoz külön + <literal>if</literal>-et írni. Az utasításokat utasításblokkba lehet összefogni. + Az alábbi kód például kiírja, hogy <computeroutput>a nagyobb, mint b</computeroutput> ha <replaceable>$a</replaceable> nagyobb, mint - <replaceable>$b</replaceable>, és aztán hozzárendeli + <replaceable>$b</replaceable>, és utána hozzárendeli <replaceable>$a</replaceable> értékét <replaceable>$b</replaceable>-hez: <informalexample> @@ -71,24 +75,22 @@ </para> <simpara> A feltételes utasítások vég nélkül további <literal>if</literal> - utasításokba ágyazhatók, amely a programod különbözõ + utasításokba ágyazhatók, amely a program különbözõ részeinek feltételes végrehajtását igen hatékonnyá teszi. </simpara> </sect1> - + <sect1 id="control-structures.else"> <title><literal>else</literal></title> <para> - Gyakran van rá szükség, hogy ha teljesül egy bizonyos feltétel, - akkor valamilyen utasítást kell végrehajtani, de ha nem, - akkor egy másik utasítást. Erre való az - <literal>else</literal>. Az <literal>else</literal> - kibõvíti az <literal>if</literal> utasítást, hogy akkor hajtson - végre utasítást, amikor az <literal>if</literal> kifejezés nem - teljesül, vagyis &false;. Például az alábbi - kód kiírja, hogy <computeroutput>a nagyobb, mint - b</computeroutput> ha <replaceable>$a</replaceable> nagyobb, mint - <replaceable>$b</replaceable>, egyébként az <computeroutput>a NEM + Gyakori, hogy egy bizonyos feltétel teljesülése esetén + valamilyen utasítást kell végrehajtani, és valamilyen másik utasítást, + ha nem teljesül a feltétel. Erre való az <literal>else</literal>. + Az <literal>else</literal> kibõvíti az <literal>if</literal> utasítást, + hogy akkor hajtson végre utasítást, amikor az <literal>if</literal> kifejezés &false;-ként + értékelõdik ki. Az alábbi kód például kiírja, hogy <computeroutput>a nagyobb, mint + b</computeroutput> ha <replaceable>$a</replaceable> + <replaceable>$b</replaceable>-nél nagyobb, egyébként az <computeroutput>a NEM nagyobb, mint b</computeroutput> üzenetet írja ki: <informalexample> <programlisting role="php"> @@ -103,15 +105,13 @@ </informalexample> Az <literal>else</literal> utasítás csak akkor hajtódik végre, - ha az <literal>if</literal> kifejezés &false; - értékû, és az összes <literal>elseif</literal> kifejezés is - &false;. Ne ijedj meg, errõl még nem volt - szó, ez a <link linkend="control-structures.elseif">következõ - fejezet</link>. + ha az <literal>if</literal> kifejezés és az összes <literal>elseif</literal> + kifejezés is &false; értékû. Az <link linkend="control-structures.elseif">elseif + </link>-rõl most olvashatsz. </para> </sect1> - + <sect1 id="control-structures.elseif"> <title><literal>elseif</literal></title> <para> @@ -124,8 +124,8 @@ kifejezés értéke &false; lenne. Azonban az <literal>else</literal>-sel ellentétben csak akkor hajtra végre az alternatív kódrészt, ha az <literal>elseif</literal> kifejezés - &true;. Például az alábbi kód üdvözli Menõ Manót, - és Víz Eleket, vagy kiírja, hogy ismeretlen, $a értékétõl függõen: + &true;. Az alábbi kód például - $a értékétõl függõen - üdvözli Menõ Manót, + és Víz Eleket, vagy kiírja, hogy ismeretlen: <informalexample> <programlisting role="php"> <![CDATA[ @@ -141,38 +141,24 @@ </informalexample> </para> <simpara> - Egy <literal>if</literal> kifejezést számos <literal>elseif</literal> - követheti. Az elsõ olyan <literal>elseif</literal> kifejezés hajtódik - végre (ha van), amely értéke &true;. A PHP-ban, - írhatsz 'else if'-et is (két szó) és ugyanúgy fog viselkedni, - mint az 'elseif' (egy szó). A szintaktikai jelentés 'kicsit' - eltérõ (ha ismered a C-t, nos ez pont úgy mûködik) de végülis - ugyanaz lesz a végeredmény. + Egy <literal>if</literal> kifejezést több <literal>elseif</literal> + követhet. Az elsõ olyan <literal>elseif</literal> kifejezés hajtódik + végre (ha van), amely értéke &true;. A PHP-ban az 'else if' is (különírva) + használható és ugyanúgy fog viselkedni, mint az 'elseif' (egybeírva). + A szintaktikai jelentés 'kicsit' eltérõ (ha ismered a C-t, nos ez pont + úgy mûködik) de végülis ugyanaz lesz a végeredmény. </simpara> <simpara> Az <literal>elseif</literal> ág csak akkor hajtódik végre, - ha az õt megelõzõ <literal>if</literal> kifejezés, és az - összes köztes <literal>elseif</literal> kifejezések - &false; értékûek, de az adott - <literal>elseif</literal> kifejezése - &true;. + ha az õt megelõzõ <literal>if</literal> kifejezés, és az összes köztes + <literal>elseif</literal> kifejezések &false; értékûek, de az adott + <literal>elseif</literal> kifejezése &true;. </simpara> </sect1> - + <sect1 id="control-structures.alternative-syntax"> <title>Vezérlési szerkezetek alternatív szintaxisa</title> <para> - <warning> - <simpara> - Az alternatív szintaxis használata nem javasolt a PHP 4-ben. - Egyszerûen olvashatatlanabb kódot eredményez, és túl - komplikálttá válik a normál formával vegyítéve. Bár nincs - terv ennek a szintaxisnak a megszüntetésére, nem zárható ki, - hogy egy nap már nem fog mûködni. Mi figyelmeztettünk téged! - </simpara> - </warning> - </para> - <para> A PHP bizonyos vezérlési szerkezeteihez egy alternatív szintaxist is nyújt; név szerint: az <literal>if</literal>, <literal>while</literal>, @@ -180,7 +166,7 @@ és <literal>switch</literal> számára. Minden esetben az alternatív szintaxisnál a nyitó kapcsos zárójel helyett kettõspontot (:) kell - írni, a záró zárójel helyett pedig a vezérlési szerkezetnek + írni, a záró zárójel helyett pedig a vezérlési szerkezetnek megfelelõ <literal>endif;</literal>, <literal>endwhile;</literal>, <literal>endfor;</literal>, <literal>endforeach;</literal>, vagy <literal>endswitch;</literal> @@ -235,10 +221,12 @@ <para> A <literal>while</literal> ciklusok a PHP legegyszerûbb ciklusai. Éppen úgy viselkednek, mint a C nyelvbeli - megfelelõik. A <literal>while</literal> általános szintaxisa: + megfelelõik. A <literal>while</literal> általános szintaxisa: <informalexample> <programlisting> +<![CDATA[ while (kifejezés) utasítás +]]> </programlisting> </informalexample> </para> @@ -255,23 +243,25 @@ akkor sem áll meg, csak az iteráció végén [feltéve ha közben megint meg nem változik a feltétel]. Amikor a <literal>while</literal> kifejezés értéke már - az elsõ vizsgálatkor &false;, - az utasítás(blokk) egyszer sem fog végrehajtódni. + az elsõ vizsgálatkor &false;, akkor az utasítás(blokk) + egyszer sem kerül végrehajtásra. </simpara> <para> Az <literal>if</literal> szerkezethez hasonlóan több utasítást csoportosítani lehet a <literal>while</literal> - ciklusban kapcsos zárójelekkel, vagy az alternatív szintaxis + ciklusban kapcsos zárójelekkel, vagy az alternatív szintaxis használatával: <informalexample> <programlisting> +<![CDATA[ while (kifejezés): utasítás ... endwhile; +]]> </programlisting> </informalexample> </para> <para> - Az alábbi példák egyformák, a számokat írják - ki 1-tõl 10-ig: + Az alábbi példák ugyanazt csinálják - 1-tõl 10-ig kiírják + a számokat: <informalexample> <programlisting> <![CDATA[ @@ -283,9 +273,9 @@ utána növelünk (post-inkrementáció) */ } - + /* 2. variáció */ - + $i = 1; while ($i <= 10): print $i; @@ -296,7 +286,7 @@ </informalexample> </para> </sect1> - + <sect1 id="control-structures.do.while"> <title><literal>do..while</literal></title> <simpara> @@ -306,16 +296,16 @@ értékelõdik ki, és nem az elején. A fõ különbség a hagyományos <literal>while</literal> ciklushoz képest, hogy a <literal>do..while</literal> ciklus elsõ iterációja garantáltan - lefut (a kifejezés igazságértéke csak az iteráció végén - ellenõrzõdik), ami nem garantált a hagyományos + lefut (a kifejezés igazságértékét csak az iteráció végén + ellenõrzi), amely nem garantált a hagyományos <literal>while</literal> ciklusnál (itt a kifejezés - igazságértéke az iteráció kezdetén értékelõdik ki, - ha értéke &false; kezdetben, a ciklus - végrehajtása azonnal befejezõdik). + igazságértéke az iteráció kezdetén kerül kiértékelésre, + ha értéke kezdetben &false;, akkor a ciklus végrehajtása + azonnal befejezõdik). </simpara> <para> Csak egy szintaxisa van a <literal>do..while</literal> ciklusnak: - + <informalexample> <programlisting role="php"> <![CDATA[ @@ -336,7 +326,7 @@ <para> Haladó C programozók már bizonyára jártasak a <literal>do..while</literal> ciklus másfajta használatában. - Például utasításblokk közepén ki lehet lépni + Például utasításblokk közepén ki lehet lépni a blokkból, ha az utasításblokkot <literal>do..while</literal>(0), közé tesszük, és <link linkend="control-structures.break"><literal>break</literal></link> @@ -363,27 +353,29 @@ </informalexample> </para> <simpara> - Ne aggódj, ha nem érted ezt azonnal, vagy ha egyáltalán nem - érted. Írhatsz szkripteket, sõt hatékony szkripteket ennek a - 'feature'-nek a használata nélkül is. + Ne aggódj, ha ezt nem azonnal vagy egyáltalán értetted meg. + Lehet szkripteket - sõt hatékony szkripteket - írni ennek a + lehetõségnek a használata nélkül is. </simpara> </sect1> - + <sect1 id="control-structures.for"> <title><literal>for</literal></title> <para> A <literal>for</literal> cilus a legbonyolultabb ciklus a PHP-ben. - Éppen úgy viselkedik, mint a C nyelvbeli + Éppen úgy viselkedik, mint a C nyelvbeli párja (–> C-ben értõknek tovább gomb). A - <literal>for</literal> ciklus szintaxisa: + <literal>for</literal> ciklus szintaxisa: <informalexample> <programlisting> +<![CDATA[ for (kif1; kif2; kif3) utasítás +]]> </programlisting> </informalexample> </para> <para> - [A fenti <literal>for</literal> szerkezettel ekvivalens az alábbi, + [A fenti <literal>for</literal> szerkezettel megegyezõ az alábbi, remélhetõleg már ismerõs kifejezés: <informalexample> <programlisting> @@ -397,54 +389,53 @@ Remélem így már érthetõbb lesz az alábbi magyarázat]. </para> <simpara> - Az elsõ kifejezés (<replaceable>kif1</replaceable>) egyszer - értékelõdik ki (hajtódik végre), mégpedig a ciklus elején. + Az elsõ kifejezés (<replaceable>kif1</replaceable>) + a ciklus kezdetén egyszer kerül végrehajtásra. </simpara> <simpara> - Minden iteráció elején - <replaceable>kif2</replaceable> kiértékelõdik. Ha értéke - &true;, a ciklus folytatódik, és az - <replaceable>utasítás</replaceable> végrehajtódik. Ha értéke - &false;, a ciklus véget ér. + Minden iteráció elején <replaceable>kif2</replaceable> kiértékelõdik. + Ha értéke &true;, akkor a ciklus folytatódik, és az + <replaceable>utasítás</replaceable>ra kerül a vezérlés. + Ha értéke &false;, akkor a ciklus véget ér. </simpara> <simpara> - Minden iteráció végén <replaceable>kif3</replaceable> - kiértékelõdik (végrehajtódik). + Minden iteráció végén <replaceable>kif3</replaceable> is végrehajtásra kerül. </simpara> <simpara> Bármelyik kifejezést el lehet hagyni. Ha - <replaceable>kif2</replaceable> üres, az azt jelenti, hogy a - ciklus a végtelenségig fut [hacsak nem jön a jó - tündér break utasítás képében...] (a PHP implicit - &true;-nak feltételezi, mint a C). - Ez nem annyira haszontalan, mint gondolnád, hiszen - gyakran fejezheted be a ciklust egy feltételes + <replaceable>kif2</replaceable> üres, az azt jelenti, hogy a + ciklus a végtelenségig fut [hacsak nem jön a jó + tündér break utasítás képében...] (A PHP implicit + &true;-nak feltételezi az üres <replaceable>kif2</replaceable>-t, + mint a C.) Ez nem annyira haszontalan, mint elsõre amennyire elsõnek tûnik, + hiszen gyakran fejezheted be a ciklust egy feltételes kifejezésbe ágyazott <link linkend="control-structures.break"><literal>break</literal></link> - kifejezéssel a <literal>for</literal> igazságértékelése helyett. + kifejezéssel a <literal>for</literal> feltétel kifejezésének kiértékelése + helyett. </simpara> <para> - Nézd az alábbi példákat. Mindegyikük kiírja a számokat egytõl tízig: + Nézd az alábbi példákat, mindegyikük kiírja a számokat 1-tõl 10-ig: <informalexample> <programlisting role="php"> <![CDATA[ /* téma */ - + for ($i = 1; $i <= 10; $i++) { print $i; } - + /* 1. variáció */ - + for ($i = 1;;$i++) { if ($i > 10) { break; } print $i; } - + /* 2. variáció */ - + $i = 1; for (;;) { if ($i > 10) { @@ -453,9 +444,9 @@ print $i; $i++; } - + /* 3. variáció - Coda :-) */ - + for ($i = 1; $i <= 10; print $i, $i++); ]]> </programlisting> @@ -463,66 +454,67 @@ </para> <simpara> Természetesen "a téma" a legbarátságosabb (vagy - esetleg a 3. variáció), de majd meg fogod látni, hogy sok - helyen hasznos dolog, hogy üres kifejezés is írható - <literal>for</literal> ciklusba... + esetleg a 3. variáció). Sok helyen hasznos azonban, hogy üres + kifejezés is írható <literal>for</literal> ciklusba... </simpara> <para> - A PHP megengedi az + A PHP a <literal>for</literal> ciklus esetén is megengedi az <link linkend="control-structures.alternative-syntax">alternatív - szintaxis</link>t is a <literal>for</literal> ciklusban: + szintaxis</link>használatát: <informalexample> <programlisting> +<![CDATA[ for (kif1; kif2; kif3): utasítás; ...; endfor; +]]> </programlisting> </informalexample> </para> <para> - Más nyelvekben van egy <literal>foreach</literal> szerkezet, - hogy bejárjanak egy tömböt, vagy egy hash-t. A PHP 3-ban nincs - ilyen, de a PHP 4-ben implementálták (lásd: <link + Más nyelvekben létezik az ún. <literal>foreach</literal> szerkezet tömbök vagy hash-ek + bejárására. A PHP 3-ban nincs ilyen, de a PHP 4-ben implementálták (lásd: <link linkend="control-structures.foreach">foreach</link>). PHP 3-ban - a <link linkend="control-structures.while">while</link> szerkezetet + a <link linkend="control-structures.while">while</link>, a <function>list</function> és az <function>each</function> - függvényeket kombinálva használhatod erre a célra. - Nézd meg e függvényeknek a dokumentációját, ha szeretnél példákat - is látni. + szerkezeteket használhatod erre a célra. Nézd meg ezeknek a dokumentációját + alkalmazási példákért. </para> </sect1> <sect1 id="control-structures.foreach"> <title><literal>foreach</literal></title> <para> - A PHP 4-ben (nem a PHP 3-ban!) a perlhez és más nyelvekhez - hasonlóan rendelkezésre áll egy <literal>foreach</literal> - szerkezet is. Ez egy jól használható eszközt ad a tömbökön - végzett iterációkhoz. Két szintaxis létezik, a második egy - apró, de hasznos plusz szolgáltatást nyújt az elsõhöz + A PHP 4-ben (nem a PHP 3-ban!) a Perlhez és más nyelvekhez + hasonlóan létezik az ún. <literal>foreach</literal> + szerkezet is. Ez jól használható eszközt ad a tömbökön + végzett iterációkhoz. Két szintaxisa létezik, a második egy + apró, de hasznos kiegészítéssel nyújt többet az elsõhöz képest. <informalexample> <programlisting> +<![CDATA[ foreach(tömb_kifejezés as $ertek) utasítás foreach(tömb_kifejezés as $kulcs => $ertek) utasítás +]]> </programlisting> </informalexample> </para> <simpara> Az elsõ forma végigmegy a <literal>tömb_kifejezés</literal> - által adott tömbön. Minden alkalommal az aktuális + szolgáltatta tömbön. Minden alkalommal az aktuális elem értéke a <literal>$ertek</literal> változóba - kerül, és a belsõ tömb mutató növelésre kerül. (Tehát - a következõ alkalommal a soron következõ elemet fogod megkapni). + kerül, és a belsõ tömb mutató növelésre kerül. (A következõ alkalommal + tehát a soron következõ elemet fogja venni). </simpara> <simpara> A második forma ugyanezt végzi el, de az aktuális elem - kulcsa a <literal>$key</literal> változóba kerül. + kulcsa a <literal>$kulcs</literal> változóba kerül. </simpara> <para> <note> <para> Amikor a <literal>foreach</literal> indul, a belsõ tömb mutató az elsõ elemre áll. Ez azt jelenti, hogy nem kell - meghívnod a <function>reset</function> függvényt egy + meghívni a <function>reset</function> függvényt egy <literal>foreach</literal> ciklus elõtt. </para> </note> @@ -545,7 +537,7 @@ </para> </note> <para> - Talán már tudod, hogy az alábbiak azonosak: + Talán már tudod, hogy az alábbi példák egyenértékûek: <informalexample> <programlisting role="php"> <![CDATA[ @@ -560,7 +552,7 @@ ]]> </programlisting> </informalexample> - Az alábbiak is megegyezõ eredménnyel szolgálnak: + Az alábbiak is azonos eredményt szolgáltatnak: <informalexample> <programlisting role="php"> <![CDATA[ @@ -633,19 +625,18 @@ </informalexample> </para> </sect1> - + <sect1 id="control-structures.break"> <title><literal>break</literal></title> <simpara> - A <literal>break</literal> azonnal kilép aktuális + A <literal>break</literal> azonnal kilép az aktuális <literal>for</literal>, <literal>foreach</literal>, - <literal>while</literal>, <literal>do..while</literal> vagy - <literal>switch</literal> ciklusból. + <literal>while</literal>, <literal>do..while</literal> ciklusból vagy + <literal>switch</literal> szerkezetbõl. </simpara> <simpara> - A <literal>break</literal> elfogad egy opcionális szám - paramétert, ami megadja, hogy hány struktúrából kell - egyszerre 'kiugrani'. + A <literal>break</literal> elfogad egy elhagyható szám paramétert, + amely megadja, hogy hány egymásba ágyazott struktúrából kell egyszerre 'kiugrani'. </simpara> <para> <informalexample> @@ -659,7 +650,7 @@ echo "$ertek<br>\n"; } -/* Az opcionális paraméter használata */ +/* Az elhagyható paraméter használata */ $i = 0; while (++$i) { @@ -679,18 +670,18 @@ </informalexample> </para> </sect1> - + <sect1 id="control-structures.continue"> <title><literal>continue</literal></title> <simpara> - A <literal>continue</literal>-t ciklus belsejében használjuk, + A <literal>continue</literal> ciklusok belsejében használható arra, hogy átugorjuk az aktuális iteráció hátralevõ részét, - és folytassuk a végrehajtást a következõ iterációval. + és a végrehajtást a következõ iterációval folytassuk. </simpara> <simpara> - A <literal>continue</literal> elfogad egy opcionális szám - paramétert, ami megadja, hogy hány struktúrának kell - a hátralévõ részét kihagyni. + A <literal>continue</literal> elfogad egy elhagyható szám + paramétert, amely megadja, hogy hány egymásba ágyazott struktúrának + a hátralévõ részét kell átugrani. </simpara> <para> <informalexample> @@ -721,19 +712,19 @@ </informalexample> </para> </sect1> - + <sect1 id="control-structures.switch"> <title><literal>switch</literal></title> <simpara> A <literal>switch</literal> kifejezés hasonló egy sereg IF kifejezéshez, ahol a kifejezésekben ugyanaz szerepel. - [Pont olyan, mint a C-beli, C-s gyakorlattal rendelkezõknek - Tovább gomb]. Sokszor fordul elõ, hogy ugyanazt a változót - (vagy kifejezést) szeretnéd összehasonlítani több különbözõ + [Pont olyan, mint a C-ben, C-s gyakorlattal rendelkezõknek + Tovább gomb]. Gyakori, hogy ugyanazt a változót + (vagy kifejezést) kell összehasonlítani több különbözõ értékkel, és más-más kódot végrehajtani a változó - (kifejezés) értékétõl függõen. Pontosan ez az, amire a - <literal>switch</literal> való. - </simpara> + (kifejezés) értékétõl függõen. Pontosan erre való a + <literal>switch</literal>. + </simpara> <para> Az alábbi két példa két különbözõ módon írja ki ugyanazt, az egyik egy sor <literal>if</literal> kifejezést használ, @@ -750,7 +741,7 @@ if ($i == 2) { print "i most 2"; } - + switch ($i) { case 0: print "i most 0"; @@ -767,18 +758,18 @@ </informalexample> </para> <para> - A hibák elkerülése végett fontos megérteni, hogy hogyan hajtódik - végre a <literal>switch</literal> szerkezet. A - <literal>switch</literal> sorról-sorra hajtódik végre (vagyis - utasításról utasításra). Nem hajtódik végre semmilyen utasítás, + A hibák elkerülése végett fontos megérteni, hogy hogyan kerül végrehajtásra + a <literal>switch</literal> szerkezet. A + <literal>switch</literal> vagyis utasításról utasításra hajtódik végre. + Nem hajtódik végre semmilyen utasítás, csak akkor, ha egy olyan <literal>case</literal> kifejezést talál a PHP, amely egyezik a <literal>switch</literal> kifejezés értékével. - A PHP addig folytatja az utasítások végrehajtását, amíg el + Ezután a PHP addig folytatja az utasítások végrehajtását, amíg el nem éri a <literal>switch</literal> blokk végét, vagy nem - találkozik egy <literal>break</literal> utasítással. FONTOS!!! - Ha nem írsz <literal>break</literal>-et a case kifejezés végére, - a PHP folytatni fogja a végrehajtást akkor is, ha újabb case - jön! Például: + találkozik egy <literal>break</literal> utasítással. FONTOS! + Ha nem nincs <literal>break</literal> egy <literal>case</literal>-hez + tartozó utasítás(sorozat) végén, akkor a PHP végrehajtja a soron következõ + <literal>case</literal>-hez tartozó utasításokat is! Például: <informalexample> <programlisting role="php"> <![CDATA[ @@ -795,16 +786,16 @@ </informalexample> </para> <simpara> - Itt, ha $i 0, a PHP az összes kiíró utasítást végrehajtja! - Ha $i 1, a PHP az utolsó két sort hajtja végre, és csak ha - $i értéke 2, akkor kapod a 'kívánt' eredményt (csak i most - 2 íródik ki). Tehát nagyon fontos nem elfelejteni a - <literal>break</literal> utasítást (bár lehet, hogy - szándékosan elhagyod bizonyos körülmények között). + Itt, ha $i értéke 0, akkor a PHP az összes kiíró utasítást végrehajtja! + Ha $i értéke 1, akkor a PHP az utolsó két print-et hajtja végre, és csak + ha $i értéke 2, akkor kapod a 'kívánt' eredményt (csak az 'i most + 2' íródik ki). Tehát nagyon fontos nem elfelejteni a + <literal>break</literal> utasítást (bár bizonyos körülmények között lehet, + hogy pont ennek elhagyása a szándékos). </simpara> <simpara> A <literal>switch</literal> kifejezésben a feltétel csak - egyszer értékelõdik ki és az eredmény hasonlítódik össze a + egyszer értékelõdik ki és a kapott eredmény lesz összehasonlítva a <literal>case</literal> kifejezések mindegyikével. Ha <literal>elseif</literal> kifejezéseket használsz, a kifejezések újra és újra kiértékelõdnek. [és újra és @@ -814,7 +805,7 @@ gyorsabb. </simpara> <para> - Egy eset utasításlistája üres is lehet, így a vezérlés + Egy eset (case) utasításlistája üres is lehet, így a vezérlés a következõ case-címkére adódik. <informalexample> <programlisting role="php"> @@ -860,8 +851,8 @@ <para> A <literal>case</literal> kifejezés tetszõleges kifejezés, aminek egyszerû a típusa, vagyis egész vagy lebegõpontos - szám, vagy string. Tömbök és objektumok itt nem használhatók, - hacsak nem egy-egy elemük ill. változójuk egyszerû típusként. + szám, vagy string. Tömbök és objektumok itt nem használhatók, + csakis egy-egy elemük ill. változójuk egyszerû típusként. </para> <para> Az alternatív szintaxis mûködik a switch-ekkel is. Bõvebb @@ -899,7 +890,9 @@ vezérlési szerkezetekéhez: <informalexample> <programlisting> +<![CDATA[ declare (direktíva) utasítás +]]> </programlisting> </informalexample> </para> @@ -919,8 +912,8 @@ </para> <sect2 id="control-structures.declare.ticks"> <title>Tick-ek</title> - <para>Egy tick egy olyan esemény, ami minden - <replaceable>N</replaceable> alacsony szintû utasítás + <para>A tick egy olyan esemény, amely minden + <replaceable>N</replaceable> db alacsony szintû utasítás végrehajtásakor bekövetkezik a <literal>declare</literal> blokkban. Az <replaceable>N</replaceable> értéket a <literal>ticks=<replaceable>N</replaceable></literal> @@ -980,7 +973,7 @@ méri, rögzítve minden második alacsonyszintû utasítás végrehajátásának idõpontját. Ez az információ alkalmas lehet arra, hogy megtaláld a lassan futó részeket a - kódodban. Ezt a hatást másképp is elérhetted volna, + kódodban. Ezt a hatást másképp is el lehet érni, de tick-eket használva sokkal kényelmesebb és könnyebben megvalósítható megoldást kapsz. </para> @@ -995,40 +988,39 @@ </simpara> </sect2> </sect1> - + <sect1 id="function.require"> <title><function>require</function></title> <simpara> - A <function>require</function> függvény behelyettesítõdik - a megadott fájllal, pont úgy, mint a C preprocesszor + A <function>require</function> helyén az a megadott fájl tartalma + helyettesítõdik be pont úgy, mint a C preprocesszor <literal>#include</literal>-ja. </simpara> <simpara> Ha az "URL fopen wrapper"-ek be vannak kapcsolva (ami az - alapbeállítású helyzet), akkor a <function>require</function> - használatakor távoli fájlt is megadhatsz. Lásd + alapértelmezett helyzet), akkor a <function>require</function> + használatakor távoli fájlt is megadható. Lásd a <link linkend="features.remote-files">Távoli fájlok kezelése</link> - címû fejezetet és az <function>fopen</function> függvényt. + címû fejezetet és az <function>fopen</function> függvényt! </simpara> <simpara> - Egy fontos megjegyzés a mûködésre vonatkozólag, hogy ha egy - fájlt berántunk <function>include</function>-al vagy - <function>require</function>-el, akkor kikerülünk a PHP - módból HTML módba a célfájl elején, és visszaáll PHP - módba a fájl végén. Ezért, bármely célfájlban levõ PHP - kódot közre kell fogni egy <link - linkend="language.basic-syntax.phpmode">érvényes - PHP kezdõ- és zárótag-gel</link>. + A mûködésre vonatkozólag fontos megjegyezni, hogy ha egy + fájlt beillesztünk az <function>include</function>-dal vagy + <function>require</function>-ral, akkor a célfájl elején az elemzõ kilép + a PHP módból HTML módba, majd visszaáll PHP módba a fájl végén. + Ennek okán bármely beillesztendõ fájlban levõ PHP kódot közre kell fogni + egy <link linkend="language.basic-syntax.phpmode">érvényes + PHP kezdõ- és zárójelöléssel</link>. </simpara> <simpara> - A <function>require</function> valójában nem is egy - függvény a PHP-ben, hanem egy nyelvi konstrukció. Ez + A <function>require</function> valójában nem is + függvény a PHP-ben, hanem nyelvi konstrukció. Ez azt jelenti, hogy más szabályok vonatkoznak rá, mint a függvényekre. Például a <function>require</function>-re - nem vonatkoznak a körbezáró struktúrák korlátozásai. - Másfelõl, nincs visszatérési értéke; ha megpróbálod - kiolvasni a <function>require</function> hívás visszatérési - értékét, a hívás értelmezési hibát (parse error) eredményez. + nem vonatkoznak a körbezáró struktúrák korlátozásai és + nincs visszatérési értéke. Ha megpróbálod + olvasni a <function>require</function> hívás visszatérési + értékét, a hívás értelmezési hibát (parse error) eredményez. </simpara> <simpara> Az <function>include</function>-tól eltérõn a @@ -1039,12 +1031,12 @@ az <function>include</function>-ot. A feltételes kifejezés nincs hatással a <function>require</function>-ra. Ennek ellenére, ha a sor, amelyen a <function>require</function> - áll nem hajtódik végre, a célfájlban lévõ kód nem is + áll nem hajtódik végre, a célfájlban lévõ kód nem is fog lefutni. </simpara> <simpara> Hasonlóan, a ciklusok sem változtatják meg a - <function>require</function> viselkedését. Bár a célfájl + <function>require</function> viselkedését. Bár a célfájl kódja a ciklusmagban van, a <function>require</function> végrehajtása csak egyszer történik meg. </simpara> @@ -1056,26 +1048,28 @@ A require-t konstans fájlnevekkel használd: <informalexample> <programlisting role="php"> -require ('header.inc'); +<![CDATA[ +require ('header.php'); +]]> </programlisting> </informalexample> </para> <simpara> - Ha egy fájlt <function>require</function>-el töltesz be, - a kód, amit tartalmaz azt az érvényességi kört örökli, - ami a <function>require</function> hívás sorára vonatkozott. - Bármilyen változó, ami azon a soron elérhetõ, rendelkezésre + Ha egy fájlt <function>require</function>-rel töltesz be, akkor + az általa tartalmazott kód azt az érvényességi kört örökli, + amely a <function>require</function> hívás sorára vonatkozott. + Bármilyen változó, amely azon a soron elérhetõ, rendelkezésre áll a hívott fájlban. Ha a <function>require</function> egy függvényben található a hívó fájlban, akkor a hívott - fájl minden kódja úgy fog viselkedni, mintha a függvényen + fájl teljes kódja úgy fog viselkedni, mintha a függvényen belül írtad volna. </simpara> <para> - Ha a <function>require</function>-el hívott fájl HTTP-n + Ha a <function>require</function>-rel hívott fájl HTTP-n keresztül érkezik az "fopen wrapper"-ek használatával, és a célszerver feldolgozza a fájlt, mint PHP kódot, átadhatsz változókat a hívott fájlnak HTTP GET lekérési - formában. Ez nem ugyanaz, mintha a <function>require</function>-el + formában. Ez nem ugyanaz, mintha a <function>require</function>-rel hívott fájl örökölné a helyi változókat, mivel a szkript valójában a távoli szerveren fut le, és a futási eredmény kerül beépítésre a helyi szkriptbe. @@ -1092,10 +1086,10 @@ /* Nem mûködik: egy 'file.php?elsovaltozo=1&masodikvaltozo=2' * nevû fájlt keres a helyi rendszeren */ -require ("file.php?elsovaltozo=1&masodikvaltozo=2"); +require ("file.php?elsovaltozo=1&masodikvaltozo=2"); /* Mûködik */ -require ("http://szerver/file.php?elsovaltozo=1&masodikvaltozo=2"); +require ("http://szerver/file.php?elsovaltozo=1&masodikvaltozo=2"); $elsovaltozo = 1; $masodikvaltozo = 2; @@ -1110,7 +1104,7 @@ helyezzünk el a <function>require</function>-rel behívott fájlba, ha a return a behívott fájl globális részében van. Nem szerepelhet blokkban sem, tehát nem lehet kapcsos zárójelen belül ({}). - A PHP 4-ben ezt a lehetõséget megszüntették. Ha szeretnél valami + A PHP 4-ben ezt a lehetõséget megszüntették. Ha szeretnél valami ilyesfélét, akkor nézd meg az <function>include</function>-ot. </simpara> <simpara> @@ -1119,7 +1113,7 @@ és <function>virtual</function>. </simpara> </sect1> - + <sect1 id="function.include"> <title><function>include</function></title> <simpara> @@ -1134,24 +1128,23 @@ címû fejezetet és az <function>fopen</function> függvényt. </simpara> <simpara> - Egy fontos megjegyzés a mûködésre vonatkozólag, hogy ha egy - fájlt berántunk <function>include</function>-al vagy - <function>require</function>-el, akkor kikerülünk a PHP - módból HTML módba a célfájl elején, és visszaáll PHP - módba a fájl végén. Ezért, bármely célfájlban levõ PHP - kódot közre kell fogni egy <link - linkend="language.basic-syntax.phpmode">érvényes - PHP kezdõ- és zárótag-gel</link>. + A mûködésre vonatkozólag fontos megjegyezni, hogy ha egy + fájlt beillesztünk az <function>include</function>-dal vagy + <function>require</function>-ral, akkor a célfájl elején az elemzõ kilép + a PHP módból HTML módba, majd visszaáll PHP módba a fájl végén. + Ennek okán bármely beillesztendõ fájlban levõ PHP kódot közre kell fogni + egy <link linkend="language.basic-syntax.phpmode">érvényes + PHP kezdõ- és zárójelöléssel</link>. </simpara> + <para> Ez történik valahányszor az <function>include</function>-hoz - ér a program, tehát használhatod az - <function>include</function>-ot egy ciklus belsejében, - hogy különbözõ fájlokat behúzzál. + ér a program, tehát az <function>include</function>-ot kell használni + egy ciklus belsejében különbözõ fájlok beillesztésére. <informalexample> <programlisting role="php"> <![CDATA[ -$fileok = array ('elso.inc', 'masodik.inc', 'harmadik.inc'); +$fileok = array ('elso.php', 'masodik.php', 'harmadik.php'); for ($i = 0; $i < count($fileok); $i++) { include $files[$i]; } @@ -1162,18 +1155,18 @@ <para> Az <function>include</function> abban különbözik a <function>require</function>-tõl, hogy míg az - <function>include</function> minden alkalommal + <function>include</function> minden alkalommal kiértékelõdik, ahányszor elõfordul (és csak akkor, ha éppen oda kerül a vezérlés), addig a <function>require</function> az elsõ alkalommal - helyettesíti a fájlt, akár kiértékelõdik + helyettesíti a fájlt, akár kiértékelõdik a tartalma, akár nem (például egy olyan <link linkend="control-structures.if">if</link> kifejezésben, amely mindig hamis). </para> <para> - Mivel az <function>include</function> egy különleges - nyelvi elem, védened kell kapcsos zárójelekkel, + Mivel az <function>include</function> különleges + nyelvi elem, kapcsos zárójelekkel kell közrefogni, ha egy feltételes utasításon belül szerepel. <informalexample> <programlisting role="php"> @@ -1185,7 +1178,7 @@ else include($other); -/* Ez HELYES */ +/* Ez a HELYES */ if ($feltetel) { include($file); @@ -1200,24 +1193,23 @@ A PHP 3-ban, és a PHP 4-ben is lehetõség van arra, hogy <literal>return</literal> utasítást helyezz el egy <function>include</function>-olt fájlban annak érdekében, - hogy a kiértékelés befejezõdjön, és visszaadjon egy - értéket a hívó szkriptnek. Bár vannak apróbb - különbségek. Elõször is a PHP 3 nem engedi meg, hogy a - <literal>return</literal> egy blokkban legyen, kivéve - ha az egy függvényblokk, ami ugye csak abból a függvénybõl - fog visszatérni, és nem az egész fájlból. A PHP 4-ben - ez a megszorítás nincs. Vagyis a PHP 4 megenged - visszatérési értékeket <function>include</function>-olt + hogy a kiértékelés ott befejezõdjön, és visszaadjon egy + értéket a hívó szkriptnek. Bár vannak apróbb + különbségek. Elõször is a PHP 3 csak függvényblokkban engedélyezi a + <literal>return</literal> elõfordulását, amely csak az adott + függvénybõl - nem pedig az egész fájlból - történõ visszatérést + jelöli. A PHP 4-ben ez a megszorítás nincs, vagyis a PHP 4 + megengedi a visszatérési értékeket <function>include</function>-olt fájlokból. A visszatérési értéket ugyanúgy használhatod, - mint egy közönséges függvénynél. Ez a PHP 3-ban + mint egy közönséges függvénynél. Ez a PHP 3-ban értelmezési hibát (parse error) okoz. </simpara> <example> <title>Az <function>include</function> PHP 3-ban és PHP 4-ben</title> <para> Tegyük fel, hogy a következõ fájl (melynek neve: - <filename>test.inc</filename>) abban a könyvtárban van, - mint a fõfájl: + <filename>test.php</filename>) abban a könyvtárban van, + mint a fõ fájl: <programlisting role="php"> <![CDATA[ <?php @@ -1231,8 +1223,8 @@ </programlisting> </para> <para> - És legyen a fõfájl (<filename>main.php</filename>) - tartalma az alábbi: + És legyen a fõ fájl (<filename>main.php</filename>) + tartalma az alábbi: <programlisting role="php"> <![CDATA[ <?php @@ -1282,7 +1274,7 @@ A fenti hiba annak a következménye, hogy a <literal>return</literal> egy kapcsos zárójelezett részben van, amely nem függvényen belül található a - <filename>test.inc</filename> fájlban. Ha a return-t + <filename>test.php</filename> fájlban. Ha a return-t kivesszük a blokkból, a kimenet ilyen lesz: <screen> Return elõtt @@ -1290,26 +1282,26 @@ </screen> </para> <para> - A nemkívánatos '27' azért van ott, mert a PHP 3 nem támogatja - az ilyen fájlokból való visszatérési értékeket. + A nem kívánt '27' azért van ott, mert a PHP 3 nem támogatja + az ilyen, fájlokból való visszatérési értékeket. </para> </example> <simpara> - Ha egy fájlt <function>include</function>-al töltesz be, - a kód, amit tartalmaz azt az érvényességi kört örökli, - ami az <function>include</function> hívás sorára vonatkozott. + Ha egy fájlt <function>include</function>-dal töltesz be, + az általa tartalmazott a kód azt az érvényességi kört örökli, + amely az <function>include</function> hívás sorára vonatkozott. Bármilyen változó, ami azon a soron elérhetõ, rendelkezésre áll a hívott fájlban. Ha az <function>include</function> egy függvényben található a hívó fájlban, akkor a hívott - fájl minden kódja úgy fog viselkedni, mintha a függvényen - belül írtad volna. + fájl teljes kódja úgy fog viselkedni, mintha az a függvényen + belül lenne írva. </simpara> <para> - Ha az <function>include</function>-al hívott fájl HTTP-n + Ha az <function>include</function>-dal hívott fájl HTTP-n keresztül érkezik az "fopen wrapper"-ek használatával, és - a célszerver feldolgozza a fájlt, mint PHP kódot, + a célszerver PHP kódként feldolgozza a fájlt, akkor átadhatsz változókat a hívott fájlnak HTTP GET lekérési - formában. Ez nem ugyanaz, mintha a <function>include</function>-al + formában. Ez nem ugyanaz, mintha a <function>include</function>-dal hívott fájl örökölné a helyi változókat, mivel a szkript valójában a távoli szerveren fut le, és a futási eredmény kerül beépítésre a helyi szkriptbe. @@ -1326,10 +1318,10 @@ /* Nem mûködik: egy 'file.php?elsovaltozo=1&masodikvaltozo=2' * nevû fájlt keres a helyi rendszeren */ -include ("file.php?elsovaltozo=1&masodikvaltozo=2"); +include ("file.php?elsovaltozo=1&masodikvaltozo=2"); /* Mûködik */ -include ("http://szerver/file.php?elsovaltozo=1&masodikvaltozo=2"); +include ("http://szerver/file.php?elsovaltozo=1&masodikvaltozo=2"); $elsovaltozo = 1; $masodikvaltozo = 2; @@ -1341,16 +1333,16 @@ </para> <simpara> Lásd még: <function>require</function>, <function>require_once</function>, - <function>include_once</function>, <function>readfile</function>, - és <function>virtual</function>. + <function>include_once</function>, <function>readfile</function> + és <function>virtual</function>! </simpara> </sect1> - + <sect1 id="function.require-once"> <title><function>require_once</function></title> <para> - A <function>require_once</function> behelyettesítõdik - a megadott fájllal, pont úgy, mint a C preprocesszor + A <function>require_once</function> helyén behelyettesítésre kerül + a megadott fájl pont úgy, mint a C preprocesszor <literal>#include</literal>-ja, és ebben az értelemben hasonló a <function>require</function>-höz. A fõ különbség az, hogy a <function>require_once</function> gondoskodik @@ -1359,10 +1351,9 @@ eredõ hibáktól. </para> <para> - Például elkészíted a következõ két fájlt: - <literal>ezskozok.inc</literal> és <literal>izelib.inc</literal> + Példában legyen a következõ két fájl: <literal>eszkozok.php</literal> és <literal>izelib.php</literal> <example> - <title>eszkozok.inc</title> + <title>eszkozok.php</title> <programlisting role="php"> <![CDATA[ <?php @@ -1377,11 +1368,11 @@ </programlisting> </example> <example> - <title>izelib.inc</title> + <title>izelib.php</title> <programlisting role="php"> <![CDATA[ <?php -require ("eszkozok.inc"); +require ("eszkozok.php"); function valtozoMegjelenites($valtozo) { if (PHPVERSION == 4) { @@ -1396,18 +1387,19 @@ ]]> </programlisting> </example> - Aztán írsz egy szkriptet <literal>require_hiba_bemutatasa.php</literal> névvel: + Valamint <literal>require_hiba_bemutatasa.php</literal> nevû szkript: <example> <title>require_hiba_bemutatasa.php</title> <programlisting role="php"> <![CDATA[ <?php -require("izelib.inc"); +require("izelib.php"); /* A következõ sor hibát generál */ -require("eszkozok.inc"); +require("eszkozok.php"); + $ize = array("1",array("komplex","tömb")); -echo "Ez betölti az eszkozok.inc fájlt, amit már\n"; -echo "egyszer az izelib.inc is betöltött.\n"; +echo "Ez betölti az eszkozok.php fájlt, amit már\n"; +echo "egyszer az izelib.php is betöltött.\n"; echo "joTea futtatása: ".joTea()."\n"; echo "ize kiírása: \n"; valtozoMegjelenites($ize); @@ -1415,72 +1407,79 @@ ]]> </programlisting> </example> - Amikor megpróbálod lefuttatni ez utóbbi programot, - az eredmény (PHP 4.01pl2-t használva): + Ez utóbbi program eredménye (PHP 4.01pl2-t használva): <informalexample> <programlisting> +<![CDATA[ A GLOBÁLIS VÁLTOZÓK JÓK A GLOBÁLIS VÁLTOZÓK JÓK -Fatal error: Cannot redeclare joTea() in eszkozok.inc on line 5 +Fatal error: Cannot redeclare joTea() in eszkozok.php on line 5 +]]> </programlisting> </informalexample> - Az <literal>izelib.inc</literal> és - <literal>require_hiba_bemutatasa</literal> fájlok módosításával, - <function>require_once</function> használatával a probléma + Az <literal>izelib.php</literal> és + <literal>require_hiba_bemutatasa</literal> fájlok módosításával - a + <function>require_once</function> használatával - a probléma megoldódik. Átnevezve <literal>require_hiba_elkerulese.php</literal>-re az elõzõt: <example> - <title>iezlib.inc (javítás)</title> + <title>iezlib.php (javítás)</title> <programlisting role="php"> +<![CDATA[ ... -require_once("eszkozok.inc"); +require_once("eszkozok.php"); function valtozoMegjelenites($valtozo) { ... +]]> </programlisting> </example> <example> <title>require_hiba_elkerulese.php</title> <programlisting role="php"> +<![CDATA[ ... -require_once("izelib.inc"); -require_once("eszkozok.inc"); +require_once("izelib.php"); +require_once("eszkozok.php"); $ize = array("1",array("komplex","tömb")); ... +]]> </programlisting> </example> Ez utóbbit futtatva a kimenet (PHP 4.0.1pl2-t használva): <informalexample> <programlisting> +<![CDATA[ A GLOBÁLIS VÁLTOZÓK JÓK -Ez betölti az eszkozok.inc fájlt, amit már -egyszer az izelib.inc is betöltött. +Ez betölti az eszkozok.php fájlt, amit már +egyszer az izelib.php is betöltött. joTea futtatása: Az Oolong tea jó ízû! ize kiírása: Array ( - [0] => 1 - [1] => Array + [0] => 1 + [1] => Array ( - [0] => komplex - [1] => tömb + [0] => komplex + [1] => tömb ) ) +]]> </programlisting> </informalexample> </para> <para> - Vedd észre, hogy a C preprocesszor + Vedd észre, hogy a C preprocesszor <literal>#include</literal>-jához hasonlóan ez is "fordítás idõben" - végzi a beillesztéseket, azaz akkor, amikor a szkriptet feldolgozza. - Ezért nem használható a szript olyan részeire, amik futás közben + végzi a beillesztéseket, azaz a szkript beolvasása során és futtatása elõtt. + Ezért nem használható a szkript olyan részeire, amelyek futás közben dinamikusan kerülnek be. Erre a célra az <function>include_once</function> vagy az <function>include</function> használható. </para> <para> - További példákhoz az <function>require_once</function> és + További példákhoz az <function>require_once</function> és <function>include_once</function> használatához nézd meg a PEAR kódot, ami a legfrissebb PHP disztribúciókban megtalálható. </para> @@ -1492,15 +1491,15 @@ és <function>virtual</function>. </para> </sect1> - + <sect1 id="function.include-once"> <title><function>include_once</function></title> <para> Az <function>include_once</function> beilleszt és feldolgoz fájlokat a program futása közben. Ez hasonló az <function>include</function> mûködéséhez, azzal a fontos különbséggel, - hogy ha a kód már egyszer beillesztésre került, akkor a PHP - nem próbálja meg ismét betölteni. + hogy ha a már egyszer beillesztésre került kódot a PHP nem próbálja meg + ismét betölteni. </para> <para> Mint ahogy a <function>require_once</function> leírásában olvasható, @@ -1511,7 +1510,7 @@ újradefiniálását, változók értékének átállítását, stb. </para> <para> - További példákhoz az <function>require_once</function> és + További példákhoz az <function>require_once</function> és <function>include_once</function> használatához nézd meg a PEAR kódot, ami a legfrissebb PHP disztribúciókban megtalálható. </para> @@ -1523,13 +1522,13 @@ Lásd még: <function>require</function>, <function>include</function>, <function>require_once</function>, <function>get_required_files</function>, - <function>get_included_files</function>, <function>readfile</function>, - és <function>virtual</function>. + <function>get_included_files</function>, <function>readfile</function> + és <function>virtual</function>! </para> </sect1> - + </chapter> - + <!-- Keep this comment at the end of the file Local variables: mode: sgml Index: phpdoc/hu/language/references.xml diff -u phpdoc/hu/language/references.xml:1.11 phpdoc/hu/language/references.xml:1.12 --- phpdoc/hu/language/references.xml:1.11 Thu Dec 27 19:38:16 2001 +++ phpdoc/hu/language/references.xml Sat Dec 29 18:57:12 2001 @@ -24,8 +24,8 @@ <title>Mit lehet referenciákkal tenni</title> <para> A PHP referenciák lehetõséget adnak arra, hogy egy értékhez - két nevet redelj. Ez azt jelenti, hogy amikor a következõt - teszed: + két nevet lehessen rendelni. Ez azt jelenti, + hogy a következõ programban: <informalexample> <programlisting role="php"> <![CDATA[ @@ -47,7 +47,7 @@ </note> </para> <para> - Ugyanez a forma használható az olyan függvényeknél, amik + Ugyanez a forma használható az olyan függvényeknél, amelyek referenciát adnak vissza, vagy a <literal>new</literal> operátor használatakor (a PHP 4.0.4 és késõbbi verziókban): <informalexample> @@ -66,16 +66,15 @@ objektumon belüli használatával ugyanazon az objektumpéldányon dolgozol. Ha az értékadás során az <literal>&</literal> -t elhagyod, akkor az objektumról másolat készül és a <literal>$this</literal> már ezen a - másolaton fog dolgozni. Ez van, amikor nem kívánatos, mivel általában + másolaton fog dolgozni. Van, amikor ez nem kívánatos, mivel általában egy példányon szeretnénk dolgozni a jobb memóriahasználat és teljesítmény érdekében. </para> </note> <para> - A cím szerinti paraméterátadás a másik dolog, amit - referenciákkal el lehet érni. Ezzel a hívott függvény - egy lokális változója és a hívó környezet egy változója - ugyanazt az értéket jelentik. Például: + A a referenciákat paraméterátadáskor is lehet használni. + Ebben az esetben a meghívott függvény egy lokális változója és a hívó környezet + egy változója ugyanazt az értéket fogja képviselni. Például: <informalexample> <programlisting role="php"> <![CDATA[ @@ -91,23 +90,22 @@ </informalexample> Ez a kód az <varname>$a</varname> változó értékét 6-ra állítja. Ez azért történik meg, mivel az <varname>ize</varname> függvényben - a <varname>$valtozo</varname> egy referencia az - <varname>$a</varname> változó értékére. - Lásd még a részletes leírást a <link - linkend="language.references.pass">cím szerinti átadásról</link>. + a <varname>$valtozo</varname> egy referencia a <varname>$a</varname> változó + értékére. A részletes leírást a <link + linkend="language.references.pass">referenciakénti paraméterátadás</link> + c. fejezetben olvashatod. </para> <simpara> - A harmadik dolog, amit referenciákkal tehetsz, az a <link - linkend="language.references.return">cím szerinti visszetérés</link>. + A referenciák harmadik felhasználási módja a <link + linkend="language.references.return">refencia visszatérési-érték</link>. </simpara> </sect1> <sect1 id="language.references.arent"> <title>Mit nem lehet referenciákkal tenni</title> <para> - Mint korábban írtuk, a referenciák nem mutatók. Ez azt - jelenti, hogy a következõ konstrukció nem azt teszi, - amit elvárnál: + Mint korábban írtuk, a referenciák nem mutatók. + A következõ konstrukció ezért nem a vártnak megfelelõen viselkedik: <informalexample> <programlisting role="php"> <![CDATA[ @@ -124,22 +122,21 @@ A <varname>foo</varname> függvényben a <varname>$valtozo</varname> változó a <varname>$valami</varname> értékéhez lesz kötve, de utána ezt megváltoztatjuk a <varname>$GLOBALS["valami"]</varname> - értékére. Nincs lehetõség <varname>$valami</varname> kötésére - a hívó környezetben valami máshoz a referenciák segítségével, - mivel <varname>$valami</varname> nem áll rendelkezésre az - <varname>ize</varname> függvényben (ott a <varname>$valtozo</varname> - reprezentálja az értékét, de a <varname>$valtozo</varname> csak - változó tartalommal bír és nem név-érték kötéssel a hívó szimbólum - táblájában). + értékére. Nincs lehetõség a referenciák segítségével a <varname>$valami</varname> + más értékhez kötésére a hívó környezetben, mivel a <varname>$valami</varname> + nem áll rendelkezésre az <varname>ize</varname> függvényben. + Ott a <varname>$valtozo</varname> reprezentálja az értékét, amely csak + változó tartalommal bír és nem név-érték kötéssel a hívó + szimbólumtáblájában. </simpara> </sect1> <sect1 id="language.references.pass"> - <title>Cím szerinti paraméterátadás</title> + <title>Referenciakénti paraméterátadás</title> <para> - Át tudsz adni függvényeknek változókat cím szerinti - formában is, így a függvény tudja módosítani az értéket. - Ez a következõképpen használatos: + A függvényeknek változókat referenciaként is át lehet adni, + így a függvény tudja módosítani a hívó környezetben definiált értéket. + Ez a következõképpen oldható meg: <informalexample> <programlisting role="php"> <![CDATA[ @@ -154,12 +151,12 @@ ]]> </programlisting> </informalexample> - Figyeld meg, hogy nincs referencia jelzés híváskor, csak + Figyeld meg, hogy nincs referencia jelzés a függvényhíváskor, csak a függvény definíciójában. Ez önmagában elég a megfelelõ mûködéshez. </para> <para> - A következõket adhatod át cím szerint: + A következõk szerepelhetnek referenciakénti paraméterátadásban: <itemizedlist> <listitem> <simpara> @@ -186,21 +183,20 @@ ]]> </programlisting> </informalexample> - Lásd még a <link linkend="language.references.return">cím - szerinti visszetérés</link> leírását. + Lásd még a <link linkend="language.references.return">refencia visszatérési-érték</link> leírását. </para> </listitem> </itemizedlist> </para> <para> - Minden más kifejezést kerülni kell cím szerinti - paraméterátadáskor, mivel az eredmények nem definiáltak. - Például a következõ példája a cím szerinti paraméterátadásnak - hibás: + Minden más kifejezést kerülni kell referencia szerinti + paraméterátadáskor, mivel az eredmény határozatlan lesz. + A következõ példákban a referencia szerinti paraméterátadás + hibának minõsül: <informalexample> <programlisting role="php"> <![CDATA[ -function valami() // Figyeld meg a hiányzó & jelet +function valami() // Figyeld meg, nincs & jel! { $a = 5; return $a; @@ -217,11 +213,11 @@ </sect1> <sect1 id="language.references.return"> - <title>Cím szerinti visszatérés</title> + <title>Refencia visszatérési-érték</title> <para> - A cím szerinti visszatérés akkor hasznos, ha meg kell találnod - egy változót amire referenciát szeretnél készíteni. Ha - referenciával szeretnél visszatérni, használd az alábbi formát: + A refencia visszatérési-érték pl. olyan változók megtalálásakor lehet + hasznos, amelyekrõl referenciát kell készíteni. Ha referenciát kell + visszaadni visszatérési értékként, akkor használd az alábbi formát: <informalexample> <programlisting role="php"> <![CDATA[ @@ -238,17 +234,17 @@ </informalexample> Ebben a példában a <varname>valtozo_kereses</varname> egy objektumot keres meg, és a megtalált objektum - egy tulajdonságát állítjuk át - helyesen, a másolatának - egy tulajdonsága helyett, amit a referenciák használata - nélkül tettünk volna - hibásan. + egy tulajdonságát állítjuk át - helyesen. A referenciák használata + nélkül a másolatának egy tulajdonságán tettük volna mindezt - hibásan. </para> <note> <simpara> A paraméter átadással ellentétben, itt a <literal>&</literal> jelet mindkét helyen meg kell - adnod, a cím szerinti visszatérés jelöléséhez. Így nem + adnod a referenciavisszaadás jelöléséhez. Így nem egy másolatot kapsz, és az <varname>$ize</varname> változóra - nézvereferencia hozzárendelés történik, nem érték hozzárendelés. + nézve referencia hozzárendelés történik, nem pedig érték + hozzárendelés (értékmásolás). </simpara> </note> </sect1> @@ -257,7 +253,7 @@ <title>Referenciák megszüntetése</title> <para> Amikor megszüntetsz egy referenciát, csak megszakítod - a változó név és érték közötti kapcsolatot. Ez nem + a változónév és az érték közötti kapcsolatot. Ez nem azt jelenti, hogy a váltózó értékét törlöd. Például: <informalexample> <programlisting role="php"> @@ -281,10 +277,10 @@ <sect1 id="language.references.spot"> <title>A PHP által használt referenciák</title> <simpara> - Sok konstrukció a PHPben referenciák segítségével + Sok konstrukció a PHP-ben referenciák segítségével valósul meg, azért minden fentebb tárgyalt kérdés ezekre az elemekre is igaz. Néhány olyan konstrukciót, - mint a cím szerinti paraméter átadást vagy visszatérést + mint a referencia átadást vagy visszatérést már kifejtettünk, más referenciákat használó konstrukciók: </simpara> @@ -293,8 +289,8 @@ <para> Amikor egy változót a <command>global $valtozo</command> formával globálisként használsz, tulajdonképpen egy referenciát képzel - a megfelelõ globális változóra. Ez azt jelenti, hogy a következõ - kódnak megfelelõ történik: + a megfelelõ globális változóra,azaz a következõ kódnak megfelelõ + történik: <informalexample> <programlisting role="php"> <![CDATA[ Index: phpdoc/hu/language/oop.xml diff -u phpdoc/hu/language/oop.xml:1.8 phpdoc/hu/language/oop.xml:1.9 --- phpdoc/hu/language/oop.xml:1.8 Wed Dec 12 15:51:28 2001 +++ phpdoc/hu/language/oop.xml Sat Dec 29 18:57:12 2001 @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="iso-8859-2"?> -<!-- EN-Revision: 1.27 Maintainer: goba Status: ready --> +<!-- EN-Revision: 1.32 Maintainer: goba Status: ready --> +<!-- CREDITS: pgerzson --> <chapter id="language.oop"> <title>Osztályok, objektumok</title> @@ -69,10 +70,10 @@ </simpara> <simpara> - A PHP fenntartja az összes __ karakterekkel kezdõdõ - metódusnevet, mint speciális neveket. Nem szabad - __ karakterekkel kezdõdõ metódusnevet adni, hacsak nem - a dokumentált funkciókat szeretnéd használni. + A PHP számára lefoglalt az összes __ karakterekkel kezdõdõ + metódusnév, mint speciális név. Nem szabad __ karakterekkel + kezdõdõ metódusnevet adni, hacsak nem a dokumentált funkciókat + szeretnéd használni. </simpara> </caution> @@ -145,8 +146,8 @@ </para> <para> Mind a $kosar, mind a $masik_kosar objektumoknak megvannak - a break() és kivesz() metódusai, és tulajdonságai. Ezek - azonban egymástól független metódusk és tulajdonságok. Az + a berak() és kivesz() metódusai, és tulajdonságai. Ezek + azonban egymástól független metódusok és tulajdonságok. Az objektumokról hasonlóan gondolkozhatsz, mint a könyvtárakról az állományrendszerben. Lehetséges, hogy két különbözõ OLVASSEL.TXT állományod van, ha ezek két különbözõ @@ -185,7 +186,7 @@ osztály saját metódusait és tulajdonságait az objektumpéldány(ok) nevétõl függetlenül, használhatod a $this kvázi-változót, amit 'a sajátom' vagy 'az aktuális objektumpéldány' értelemben - alkalmazhatsz. Ezért a '$this->dolgok[$sorsz] += $db' úgy + alkalmazhatsz. Ezért a '$this->dolgok[$sorsz] += $db' úgy olvasható, hogy 'adj $db darab $sorsz sorszámú terméket a saját dolgok tömbömhöz', vagy 'adj $db darab $sorsz sorszámú terméket az aktuális objektumpéldány dolgok tömbjéhez'. @@ -196,14 +197,14 @@ <title><literal>extends</literal></title> <para> - Gyakran szeretnél olyan osztályokat kialakítani, amelyek - hasonló tulajdonságokkal és metódusokkal rendelkeznek, - mint egy már meglévõ osztály. Tulajdonképpen jó gyakorlat + Gyakori, hogy szeretnél olyan osztályokat kialakítani, amelyek + egy már meglévõ osztályhoz hasonló tulajdonságokkal és + metódusokkal rendelkeznek. Tulajdonképpen jó gyakorlat egy általános osztályt definiálni, amit minden projektedben használhatsz, és ezt az osztályt alakítani az egyes projektek igényeinek megfelelõen. Ennek a megvalósítása érdekében az osztályok lehetnek más osztályok kiterjesztései. - A kietrejesztett, vagy származtatott osztály minden + A kiterjesztett, vagy származtatott osztály minden tulajdonággal és metódussal rendelkezik, ami a kiindulási osztályban megvolt (ezt nevezzük öröklésnek, bár senki sem hal meg a folyamat során). Amit hozzáadsz a kiindulási @@ -254,7 +255,7 @@ </sect1> <sect1 id="language.oop.constructor"> - <title><literal>Constructors</literal></title> + <title><literal>Konstruktor</literal></title> <caution> <simpara> @@ -263,13 +264,14 @@ </simpara> </caution> <para> - A konstruktorok olyan az osztályok olyan metódusai, amelyek - automatikusan meghívódnak, amikor létrehozol egy új objektumpéldányt - a <literal>new</literal> kulcsszóval. A PHP 3-ban egy metódus - úgy válik konstruktorrá, hogy a neve megyezik az osztály nevével. - A PHP 4-ben egy metódus úgy lesz kostruktorrá, hogy a neve - megegyezik annak az osztálynak a nevével, ahol deifiniálták. - A különbség hajszálnyi, de kritikus (lásd lentebb). + A konstruktorok az osztályok olyan metódusai, amelyek + automatikusan meghívásra kerülnek egy új objektumpéldány + <literal>new</literal> kulcsszóval történõ létrehozása során. + A PHP 3-ban egy metódus akkor tekinthetõ konstruktornak, ha + a neve megyezik az osztály nevével. A PHP 4-ben egy metódus akkor + lesz kostruktorrá, hogy a neve megegyezik annak az osztálynak a + nevével, ahol deifiniálták. A különbség hajszálnyi, de kritikus + (lásd lentebb). </para> <informalexample> @@ -289,11 +291,11 @@ <para> Ez egy olyan Auto_Kosar nevû osztályt [objektumtípust] hoz létre, - mint a Kosar, csak rendelkezik egy konstruktorral, ami inicializálja + mint a Kosar, csak rendelkezik egy konstruktorral, amely inicializálja a kosarat 1 darab "10"-es áruval, valahányszor a new operátorral hozzuk létre az objektumot. [de csak akkor!!!] A konstruktoroknak - is lehetnek paramétereik, és ezek lehetnek opcionálisak, ami még - hasznosabbá teszi õket. Ha paraméterek nálkül is használható osztályt + is lehet átadni paramétereket, és ezek lehetnek elhagyhatók is, amely még + hasznosabbá teszi õket. Ha paraméterek nélkül is használható osztályt szeretnél, állíts be minden paraméternek alapértéket. </para> @@ -401,7 +403,7 @@ <para> A PHP 3-ban az A osztály B() metódusa hirtelen konstruktorrá - válik a B osztályban, habár soha sem volt ez a célunk. + válik a B osztályban, habár ez soha sem volt cél. A PHP 3 szabálya: 'A konstruktor egy metódus, aminek ugyanaz a neve, mint az osztálynak'. A PHP 3 nem foglalkozik azzal, hogy a metódus a B osztályban van-e definiálva, vagy öröklés @@ -455,9 +457,9 @@ </caution> <para> - Idõnként hasznos az õsök metódusaira vagy tulajdonádaira - hivatkozni, vagy olyan osztály metódusokat meghívni, amik - nem példányosult objektumokhoz tartoznak. A :: operátor + Idõnként hasznos az õsosztályok metódusaira vagy tulajdonságaira + hivatkozni, vagy olyan osztálymetódusokat meghívni, amelyek + nem példányosított objektumokhoz tartoznak. A :: operátor erre használható. </para> @@ -498,42 +500,39 @@ </informalexample> <para> - A fenti példa meghívja a pelda() metódusát az - A osztálynak, habár nincs konkrét példányunk az - A osztályból, tehát nem írhatnánk azt, hogy - $a->pelda(), vagy valami hasonlót. Ehelyett a - pelda() egy 'osztály metódusként' viselkedik, - azaz az osztály egy függvényeként, és nem - egy példány metódusaként. + A fenti példa meghívja az A osztály pelda() metódusát, + habár nincs konkrét példányunk az A osztályból, + tehát ezt nem írhatnánk le az <literal>$a->pelda()<literal>-hoz + hasonlóan. Ehelyett a pelda() egy 'osztálymetódusként' viselkedik, + azaz az osztály egy függvényeként, és nem egy példány metódusaként. </para> <para> - Osztály függvények léteznek, de osztály tulajdonságok + Osztálymetódusok léteznek, de osztálytulajdonságok (változók) nem. Mivel a hívás pillanatában semmilyen - objektum nem létezik, egy osztály metódus nem használhat + objektum nem létezik, egy osztálymetódus nem használhat objektum változókat, és egyáltalán nem használhatja a $this - speciális referenciát. Egy objektum metódus azonban + speciális referenciát. Egy objektummetódus azonban természetesen dolgozhat globális változókkal és lokális változókkal is. </para> <para> - A fenti példában a B osztály felüldefiniálja a pelda() - metódust. Az eredeti definíció az A osztályból eltûnik, - és nem érhetõ el többé, hacsak nem az A osztályban + A fenti példa a B osztályban felüldefiniálja a pelda() + metódust. Az A osztálytól örökölt eredeti definíció eltûnik, + és többé nem érhetõ el, hacsak nem az A osztályban megvalósított pelda() függvényre hivatkozol közvetlenül, - a :: operátor segítségével. Írj A::pelda()-t, hogy - elérd ezt a hatást (ebben az esetben írhatnál - parent::pelda()-t is, ahogy a következõ bekezdésekben - olvasható). + a :: operátor segítségével. Ennek eléréséhez A::pelda()-t + kell használni (ebben az esetben írhatnál parent::pelda()-t is, + ahogy az a következõ szakaszban olvasható). </para> <para> - Ebben a környezetben van egy aktuálisan használt objektum, + Ebben a környezetben van aktuálisan használt objektum, és ennek lehetnek objektum változói (tulajdonságai). - Ezért ha egy objektum függvényen belül használod ezt - az operátort, alkalmazhatod a $this-t, és az objektum - tulajdonságokat. + Ekképpen ha egy objektummetóduson belül használod ezt + az operátort, akkor alkalmazhatod a $this-t, és + felhasználhatod az objektum tulajdonságait. </para> </sect1> @@ -541,7 +540,7 @@ <title><literal>parent</literal></title> <para> - Gyakran van szükség arra, hogy a szülõ tulajdonságaira, + Gyakran van szükség arra, hogy a szülõ tulajdonságaira vagy metódusaira hivatkozzunk leszármazott osztályokban. Ez különösen igaz, ha a leszármazott osztály egy finomítása, vagy specializálása az alaposztálynak. @@ -612,7 +611,7 @@ A <function>serialize</function> egy karaktersorozatot ad vissza, ami az átadott érték byte-sorozatban megadott megfelelõje. Az <function>unserialize</function> - alakít vissza egy ilyen karaktersorozatot az eredeti + visszaalakít egy ilyen karaktersorozatot az eredeti értékké. A szerializációs folyamat során egy objektum átadásával elmenthetjük az objektum minden tulajdonságát (változóját). A függvények nem kerülnek elmentésre, @@ -621,18 +620,18 @@ <para> Ahhoz, hogy az <function>unserialize</function> segítségével - vissza tudj állítani egy objektumot, az objektum osztályának - definiálva kell lennie. Azaz, ha van egy $a objektumod - (az A osztályból), az elso.php oldalon, és ezt szerializálod, - kapsz egy karaktersorozatot, ami az A osztályra hivatkozik, - és tartalmazza az összes $a-ban lévõ változó (tulajdonság) - értékét. Ha ezt a karaktersorozatot a masodik.php oldalon - objektummá szeretnéd alakítani, újra létrehozva az A osztály - $a nevû objektumát, az A osztály definíciója rendelkezésre - kell, hogy álljon a masodik.php oldalon is. Ez úgy érhetõ - el, hogy az A osztály definícióját egy külsõ állományban - tárolod, és ezt alkalmazod mind az elso.php, mind a masodik.php - oldalon. + vissza lehessen állítani egy objektumot, az objektum osztályának + (típusának) már definiálva kell lennie. Ez a következõket jelenti + egy példán keresztül megvilágítva. Ha az elso.php oldalon az A + osztályú $a objektumot szerializálod, akkor kapsz egy olyan + karaktersorozatot, amely az A osztályra hivatkozik, és tartalmazza + az összes $a-ban lévõ változó (tulajdonság) értékét. + Ha ezt a karaktersorozatot a masodik.php oldalon objektummá szeretnéd + alakítani, újra létrehozva az A osztályú $a nevû objektumot, akkor az + A osztály definíciójának rendelkezésre kell állnia a masodik.php + oldalon is. Ez úgy érhetõ el, hogy az A osztály definícióját egy külsõ + állományban tárolod, és ezt alkalmazod mind az elso.php, mind a + masodik.php oldalon. </para> <informalexample> @@ -660,7 +659,7 @@ fclose($fp); masodik.php: - // ez szükséges, hogy a deszerializáció rendben legyen + // ez szükséges, hogy a deszerializáció rendben menjen include("aosztaly.inc"); $s = implode("", @file("tarolas")); @@ -694,9 +693,9 @@ <para> Ezért ha a fenti példában az $a a session részévé - válik a <literal>session_register("a")</literal> hívással, - be kell töltened az <literal>aosztaly.inc</literal> - külsõ állományt minden oldalon, és nem csak az elso.php + válik a <literal>session_register("a")</literal> meghívásával, + akkor be kell töltened az <literal>aosztaly.inc</literal> + külsõ állományt minden oldalon, nem csak az elso.php és masodik.php programokban. </para> </sect1> @@ -708,15 +707,15 @@ A <function>serialize</function> ellenõrzi, hogy van-e az osztályodnak <literal>__sleep</literal> nevû metódusa. Ha van, ez lefut a szerializáció elõtt. Ez megtisztíthatja az objektumot, - és végül egy tömbbel tér vissza, ami tartalmazza azon tulajdonságok - neveit, amik az objektummal kapcsolatban szerializálásra kerülnek. + és végül egy tömbbel tér vissza, amely tartalmazza az adott + objektum ténylegesen szerializálandó tulajdonságainak neveit. </para> <para> A <literal>__sleep</literal> célja, hogy bezárjon minden adatbázis kapcsolatot, a várakozó adatokat lementse, és - hasonló 'tisztító' jellegû tevékenységeket végezzen. Akkor - is hasznos lehet, ha nagyon nagy objektumaid vannak, amiket + hasonló 'tisztító' jellegû tevékenységeket végezzen. Hasznos + lehet akkor is, ha nagyon nagy objektumaid vannak, amelyeket külön szeretnél lementeni. </para> @@ -942,4 +941,7 @@ 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 + -->
Index: phpdoc/hu/language/constants.xml diff -u phpdoc/hu/language/constants.xml:1.11 phpdoc/hu/language/constants.xml:1.12 --- phpdoc/hu/language/constants.xml:1.11 Thu Dec 27 19:45:25 2001 +++ phpdoc/hu/language/constants.xml Sat Dec 29 18:57:12 2001 @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="iso-8859-2"?> <!-- EN-Revision: 1.23 Maintainer: goba Status: ready --> -<!-- CREDITS: kgergely --> +<!-- CREDITS: kgergely,pgerzson --> <chapter id="language.constants"> <title>Konstansok</title> <simpara> A konstans egy egyszerû érték azonosítója (neve). Mint ahogy - az elnevezése is mutatja, a program futása során nem változtatható + az elnevezése is mutatja, a program futása során nem változik meg az értéke (a mágikus <constant>__FILE__</constant> és <constant>__LINE__</constant> konstansok az egyedüli kivételek ez alól). A konstansok alapesetben érzékenyek a kis- és nagybetûs @@ -25,9 +25,9 @@ <note> <simpara> - Ebben az esetben egy betû lehet angol betû karakter - a-z-ig és A-Z-ig, valamint az ASCII karakterek - 127-es kódtól 255-ös kódig (0x7f-0xff). + Ebben az esetben egy betû lehet az angol abc egy betûje + a-z-ig és A-Z-ig, valamint a 127-tõl 255-ig terjedõ + (0x7f-0xff) ASCII kódú karakterek. </simpara> </note> @@ -38,8 +38,8 @@ <title>Szintakszis</title> <simpara> Konstanst a <function>define</function> függvénnyel - tudsz létrehozni. Miután definiáltad, késõbb nem - tudod megváltoztatni az értékét, vagy törölni. + lehet létrehozni. Definiálása után késõbb nem + lehet törölni vagy megváltoztatni az értékét. </simpara> <simpara> Csak skaláris adat (<type>boolean</type>, <type>integer</type>, @@ -47,13 +47,13 @@ egy konstans tartalma. </simpara> <simpara> - A konstans értékét a nevének megadásával kaphatod meg. + A konstans értékére a nevének megadásával lehet hivatkozni. A változókkal ellentétben <emphasis>nem</emphasis> szabad <literal>$</literal> jelet tenned a konstand neve elé. - Használhatod még a <function>constant</function> függvényt is, + Használható még a <function>constant</function> függvényt is, ha például a konstans nevét egy változó adja. A <function>get_defined_constants</function> függvénnyel - tudod a definiált konstansok listáját megkapni. + lehet a definiált konstansok listáját megkapni. </simpara> <note> <simpara> @@ -64,35 +64,35 @@ </note> <simpara> Ha egy definiálatlan konstanst próbálsz meg használni, a PHP - úgy veszi, hogy a konstans nevét veszi karaktersorozatként. - Egy + a konstans nevét veszi karaktersorozatként értékül. + Ilyen esetekben egy <link linkend="features.error-handling">notice</link> szintû hiba - keletkezik, ha ez történik. A <function>defined</function> - függvényt használhatod, ha konstans létezését szeretnéd vizsgálni. + keletkezik. A <function>defined</function> + függvény segítségével vizsgálható a konstans létezése. </simpara> <para> A következõk a fontosabb különbségek a változókhoz képest: <itemizedlist> <listitem> <simpara> - A konstansok nevét nem kell dollár jellel <literal>$</literal> kezdeni + A konstansok nevét nem kell dollár jellel <literal>$</literal> kezdeni. </simpara> </listitem> <listitem> <simpara> - A konstansokat akárhol definiálhatod, és akárhol elérheted, a - változók környezeti korlátozásaitól függetlenül + A konstansokat akárhol definiálhatók, és akárhonnan elérhetõk, a + változók környezeti korlátozásaitól függetlenül. </simpara> </listitem> <listitem> <simpara> - A konstansokat nem módosíthatóak, és nem törölhetõek, miután - egyszer beállítod az értéküket + A konstansok nem módosíthatóak, és nem törölhetõek, miután + egyszer létrehozták azokat. </simpara> </listitem> <listitem> <simpara> - A konstansok csak skaláris értékeket tartalmazhatnak + A konstansok csak skaláris értékeket tartalmazhatnak. </simpara> </listitem> </itemizedlist> @@ -118,7 +118,7 @@ <title>Elõre definiált konstansok</title> <para> - Az mindig elérhetõ elõre definiált konstansok: + A mindig elérhetõ, elõre definiált konstansok: <variablelist> @@ -137,9 +137,9 @@ <term>__LINE__ (független a kis- vagy nagybetûs irásmódtól)</term> <listitem> <simpara> - Az aktuális szkripten belüli sor száma. Ha includdal, - vagy require-ral behívott fájlra alkalmazzuk, az - include-olt fájlon belüli pozíciót kapjuk. + Az aktuális szkripten belüli sor száma. Ha include-dal, + vagy require-ral behívott fájlra alkalmazzuk, akkor azon a + fájlon belüli pozíciót kapjuk. </simpara> </listitem> </varlistentry> @@ -229,11 +229,9 @@ <listitem> <simpara> Valami történt, ami lehet, hogy hiba, de lehet, - hogy nem :) A végrehajtás folytatódik. [lehet, - hogy formázza a vinyódat, lehet, hogy nem :)] - Ilyenre példa egy idézõjelek nélküli string, - mint tömbindex, vagy egy változó elérése, - amelynek még nem adtunk értéket. + hogy nem :) A végrehajtás folytatódik. Ilyenre + példa egy idézõjelek nélküli sztring, mint tömbindex, + vagy egy változó elérése, amelynek még nem adtunk értéket. </simpara> </listitem> </varlistentry> Index: phpdoc/hu/language/expressions.xml diff -u phpdoc/hu/language/expressions.xml:1.12 phpdoc/hu/language/expressions.xml:1.13 --- phpdoc/hu/language/expressions.xml:1.12 Thu Dec 27 19:59:26 2001 +++ phpdoc/hu/language/expressions.xml Sat Dec 29 18:57:12 2001 @@ -1,31 +1,29 @@ <?xml version="1.0" encoding="iso-8859-2"?> -<!-- EN-Revision: 1.22 Maintainer: goba Status: ready --> -<!-- CREDITS: kgergely --> +<!-- EN-Revision: 1.19 Maintainer: goba Status: ready --> +<!-- CREDITS: kgergely,pgerzson --> <chapter id="language.expressions"> <title>Kifejezések</title> <simpara> - A kifejezések a PHP legfontosabb építõkövei. A PHP-ban minden, - amit leírsz, egy kifejezés. A lehetõ legegyszerûbb és még - pontos definíciója a kifejezésnek: "valami, aminek - értéke van". + A kifejezések a PHP legfontosabb építõkövei. A PHP-ban majdnem minden, + amit leírsz, egy kifejezés. A lehetõ legegyszerûbb és mégis + pontos definíciója a kifejezésnek: "mindaz, amelynek értéke van". </simpara> <simpara> - A kifejezések legalapvetõbb formái a konstansok és változók. - Amikor beírod, hogy "$a = 5", az '5'-öt az $a változóhoz - rendeled. Az '5'-nek nyilván 5 az értéke, vagy más szavakkal - az '5' egy olyan kifejezés, melynek értéke 5 (itt az '5' - egy egész konstans). + A kifejezések legalapvetõbb formái az állandók és a változók. + Az "$a = 5" az '5'-öt az $a változóhoz rendeli. + Az '5'-nek nyilván 5 az értéke, vagyis más szavakkal + az '5' olyan kifejezés, melynek értéke 5 (itt az '5' + egy egész típusú állandó). </simpara> <simpara> - Ez után a hozzárendelés után azt várod, hogy $a értéke 5 legyen, - sõt, ha azt írod, hogy $b = $a, azt várod, hogy az eredmény - legyen azonos azzal, mintha $b = 5-öt írtál volna. Más - szavakkal az $a egy kifejezés, melynek értéke 5. Ha - minden jól megy, pontosan ez fog történni. + Ez után a hozzárendelés után $a értéke 5 kell legyen, + sõt, $b = $a esetén az eredménynek azonosnak kell lennie azzal, + mint $b = 5 esetén. Másképp megfogalmazva az $a olyan kifejezés, amelynek értéke 5. + Ha minden jól megy, pontosan ez fog történni. </simpara> <para> @@ -44,68 +42,67 @@ </informalexample></para> <simpara> - Feltéve, hogy nem idegen tõled a függvények koncepciója - (ha nem, akkor olvasd el a függvényekrõl szóló fejezetet), - azt várnád, hogy <literal>$c = foo()</literal> lényegében - azonos <literal>$c = 5</literal> beírásával és igazad is van. - A függvények olyan kifejezések, amiknek az értéke a + Megelõlegezzük ,hogy nem idegen Tõled a függvények koncepciója - + ha nem így lenne, akkor olvasd el a függvényekrõl szóló fejezetet. + Amint az elvárható, a <literal>$c = foo()</literal> lényegében + azonos <literal>$c = 5</literal> beírásával. + A függvények olyan kifejezések, amelyeknek az értéke a visszatérési értékük. Mivel foo() 5-tel tér vissza, a - 'foo()' kifejezés értéke 5. Általában a függvényeket - nem arra használjuk, hogy egy bedrótozott számmal - térjenek vissza, hanem azért, hogy valamit kiszámoljanak. + 'foo()' kifejezés értéke 5. Általában a függvények nem arra + használatosak, hogy egy bedrótozott számmal térjenek vissza, + hanem valamilyen számolt származtatott értékkel. </simpara> <simpara> Természetesen a változóknak a PHP-ben nem kell egésznek lenniük, és nagyon gyakran nem is azok. A PHP három féle - skalártípust támogat: egész, lebegõpontos és string + skalártípust támogat: egész, lebegõpontos és sztring értékeket (skalárnak az számít, amit nem lehet kisebb - darabokra bontani, nem úgy, mint a tömböket, például). + darabokra bontani, eltérõen - például - a tömböktõl). A PHP két nem skalár típust is támogat: a tömb és objektum típust. Mindegyikükhöz lehet értéket rendelni, és mindegyikük lehet egy függvény visszatérési értéke. </simpara> <simpara> - Eddig, a PHP/FI 2 használói nem találkoztak semmi különössel. - Mindamellett a PHP továbbviszi a kifejezéseket, úgy mint + Eddig a PHP/FI 2 használói nem találkoztak semmi különössel. + Mindamellett a PHP továbbfejleszti a kifejezés fogalmát, ahogy azt sok hasonló nyelv teszi. A PHP egy kifejezés-orientált - nyelv, olyan szempontból, hogy majdnem minden kifejezés. - Tekintsük a példát, amivel foglalkoztunk, '$a = 5'. Látható, - hogy két értéket hívtunk meg, az egész konstans '5'-öt, - és $a értékét, amit az 5 értékkel frissítettünk. De az az - igazság, hogy még egy érték is van a kifejezésben, a - hozzárendelés maga. A hozzárendelés maga kiértékeli az - átadandó értéket, ebben az esetben az 5-öt. Gyakorlatilag - ez azt jelenti, hogy '$a=5', eltekintve attól, hogy - mit csinál, egy kifejezés, aminek az értéke 5. Ezért ha - olyasmit írunk, hogy '$b=($a=5)', az olyasmi, mintha azt - írtuk volna, hogy '$a=5; $b=5;' (a pontosvesszõ jelöli az - állítás végét). Mivel a hozzárendelés jobbról balra történik, - ez ír6ó zárójelek nélkül is: '$b=$a=5'. + nyelv, abból a szempontból, hogy majdnem minden kifejezés. + Tekintsük a példát, amivel eddig foglalkoztunk: '$a = 5'. Látható, + hogy két értéket szerepel benne: az egész konstans '5' + és $a értéke, amelyet az 5 értékkel frissítettünk. Az + igazság azonban az, hogy még egy érték is van a kifejezésben, a + magáé a hozzárendelésé. A hozzárendelés maga kiértékeli az + átadandó értéket, ebben az esetben az 5-öt. Ez azt jelenti + gyakorlatilag, hogy a '$a=5', a hatásától eltekintve egy kifejezés, + amelynek az értéke 5. Ha ezért olyasmit írunk, hogy '$b=($a=5)', akkor + az olyasmi, mintha '$a=5; $b=5;'-t írtunk volna (a pontosvesszõ jelöli + az állítás végét). Mivel a hozzárendelés jobbról balra történik, + ez írható zárójelek nélkül is: '$b=$a=5'. </simpara> <simpara> - A kifejezés-orientáltság másik jó példája a pre- és - postinkrementáció. A PHP/FI 2 használóinak és sok más + A kifejezés-orientáltság másik jó példája az elõ- és + utónövekményes operátor. A PHP/FI 2 használóinak és sok más nyelvet használónak ismerõs lehet a változó++ és - változó-- jelölés. Ezek az inkrementáló és dekrementáló + változó-- jelölés. Ezek az növelõ és csökkentõ operátorok. A PHP/FI 2-ben a '$a++'-nek nincs értéke (mert nem kifejezés), és ezért nem is lehet semmihez hozzárendelni, vagy valamire használni. A PHP kiterjesztette az inkrementálás/dekrementálás lehetõségeit azzal, hogy ezeket is kifejezésekké alakította, mint ahogyan a C nyelvben is megtették. - A PHP-ben a C nyelvhez hasonlóan kétféle inkrementáció - van: pre- és post. Mindkettõ megnöveli a változó értékét, + A PHP-ben a C nyelvhez hasonlóan kétféle növekményes operátor + van: elõ- és utó(növekményes). Mindkettõ megnöveli a változó értékét, tehát a változó szempontjából nézve nincs különbség, - a kifejezés értékében annál inkább. A pre-inkrementáció, - amit '++$változó'-ként írunk, a növelt értéket adja (A - PHP elõször növeli a változót, majd kiértékeli, innen - a 'pre-'). A post-inkrementáció '$változó++' az eredeti - értéket adja (A PHP elõször kiértékeli, aztán növeli - a változót, innen a 'post-'). [a dekrementációval ugyanez - a helyzet, értelemszerûen] + a kifejezés értékében annál inkább. A '++$változó' formájú + elõnövekményes a megnövelt értéket adja vissza. (A + PHP elõször növeli a változót, majd kiértékeli, innen jön az + 'elõ'). A '$változó++' alakú utónövekményes a változó eredeti + értéket adja. (A PHP elõször kiértékeli, aztán növeli + a változót, innen jön az 'utó'). + [A csökkentõ operátorokkal értelemszerûen ugyanez a helyzet.] </simpara> <simpara> @@ -121,27 +118,22 @@ <simpara> Az utolsó példa, amivel itt foglalkozunk, a kombinált - hozzárendelés-operátor kifejezés. [eredeti: combined - operator-assignment fordícccsa le, aki akarja (tugggya)]. - Lehet, hogy már tudod, hogy ha $a-t eggyel szeretnéd + hozzárendelés-operátor kifejezés. + Már tudhatod, hogy ha $a-t eggyel szeretnéd megnövelni, akkor egyszerûen írhatod, hogy '$a++' vagy - '++$a'. [ha nem, akkor büntibõl olvasd el ezt a fejezetet - 10-szer eddig a pontig]. De mi van akkor, hogy ha - nem eggyel, hanem 3-mal akarod megnövelni? Írhatod - háromszor, hogy '$a++', de ez nem valami hatékony és - üdvözítõ megoldás. Egy sokkal jobb gyakorlat az - '$a=$a+3'. Ez kiértékeli az $a plusz 3-at, és - hozzárendeli az $a-hoz, aminek az lesz az eredménye, - hogy $a megnõ hárommal. De a PHP-ben, mint több más - C-szerû nyelven egy rövidebb formában is írhatod - [és mivel a programozó egyik fõ tulajdonsága a - lustaság, a türelmetlenség és az akaratosság - mellett]: '$a+=3'. Ez pont azt jelenti, hogy - "vedd $a értékét, és adjál hozzá hármat, és írd + '++$a'. Mi van akkor, hogy ha nem eggyel, hanem 3-mal kell + megnövelni? Lehet háromszor egymás után írni, hogy '$a++', + de ez nem valami hatékony és üdvözítõ megoldás. + Sokkal jobb gyakorlat az '$a=$a+3' használata. + Ez kiértékeli az $a + 3-at, és hozzárendeli az $a-hoz, amelynek + az lesz a végsõ eredménye, hogy $a értéke megnõ hárommal. + A PHP-ben - több más C-szerû nyelvhaz hasonlóan - ennél + rövidebb formában is megadható: '$a+=3'. Ez pontosan azt + jelenti, hogy "vedd $a értékét, és adjál hozzá hármat, és írd vissza az eredményt $a-ba". Amellett, hogy rövidebb és érthetõbb, még gyorsabb is. '$a+=3' értéke, mint egy normál értékadásé a hozzárendelt érték. Ez - persze NEM 3, hanem $a plusz 3 (hiszen ezt az + persze NEM 3, hanem $a + 3 (hiszen ezt az értéket rendeltük $a-hoz). Az összes többi kétoperandusú operátort lehet ilyenformán hozzárendelõ-operátorként használni, például '$a-=5' (kivon 5-öt $a-ból), @@ -149,8 +141,8 @@ </simpara> <para> - Van még egy kifejezés, ami elég különösnek tûnhet, - hacsak nem láttad más nyelvekben, a háromoperandusú + Létezik még egy kifejezés, amely elég különösnek tûnhet, + hacsak nem láttad már más nyelvekben: a háromoperandusú feltételes operátor: <informalexample> @@ -161,21 +153,21 @@ </programlisting> </informalexample> - Értéke: ha az elsõ kifejezés értéke igaz (nem nulla), + Értéke: ha az elsõ kifejezés értéke &true;(nem nulla), akkor a második részkifejezés, egyébként a harmadik részkifejezés. Egy segítõ példa: - + <informalexample> <programlisting role="php"> <![CDATA[ -$b = $todo == 'növel' ? $a+5 : $a-5; // $b $a+5 lesz, ha $todo értéke növel +$b = $todo == 'növel' ? $a+5 : $a-5; // $b $a+5 lesz, ha $todo értéke 'növel' // egyébként $b $a-5 lesz -]]> +]]> </programlisting> </informalexample> - + Ez megegyezik az alábbi kóddal: - + <informalexample> <programlisting> <![CDATA[ @@ -186,8 +178,8 @@ </para> <para> - [Vigyázat!] Az alábbi példa segíthet a pre- és - posztinkrementálás, és a kifejezések jobb megértésében: + Az alábbi példa segíthet az elõ- és utónövekményes illetve + csökkentõ operátorok és kifejezéseik jobb megértésében: <informalexample> <programlisting role="php"> @@ -196,12 +188,13 @@ { return $i*2; } + $b = $a = 5; /*ötöt rendelünk $a és $b változókhoz */ -$c = $a++; /* post-inkrementálás, $c 5 lesz, mert +$c = $a++; /* utónövekményes, $c 5 lesz, mert elõször $a kiértékelõdik, csak aztán nõ */ -$e = $d = ++$b; /* pre-inkrementálás, $b növelt értéke (6) +$e = $d = ++$b; /* elõnövekményes, $b növelt értéke (6) adódik tovább $d-nek és $e-nek */ /* itt $d és $e hat */ @@ -221,13 +214,12 @@ <simpara> A fejezet elején azt ígértük, hogy leírjuk a különbözõ - utasítás-típusokat, és ahogy reméljük, a kifejezések - lehetnek állítások. De nem minden utasítás állítás. - Így utasítás, ami 'kif' ';', vagyis egy kifejezés, - amit pontosvesszõ követ. A '$b=$a=5;'-ben $a=5 + utasítás-típusokat, és ígéretnek megfelelõen a kifejezések + lehetnek állítások. Nem minden kifejezés állítás azonban, mert + utasítás, amely illeszkedik 'kif' ';' mintára, vagyis a + pontosvesszõvel folytatodó kifejezés. A '$b=$a=5;'-ben $a=5 érvényes kifejezés, de nem érvényes utasítás önmagában. - A teljes '$b=$a=5;' már igen. [Gábor elmondta nekem, hogy: - A lényeg, hogy az $a=5 nem utasítás, mivel nem követi ;] + A teljes '$b=$a=5;' már igen. </simpara> <simpara> @@ -238,7 +230,7 @@ A &true; és &false; konstansok (nevük nem függ a kis- és nagybetûs írásmódtól) a PHP két lehetséges logikai értékei. Amikor szükséges, a kifejezések automatikusan - logikai értékké alakulnak. Lásd a + logikai értékké alakulnak. Lásd a <link linkend="language.types.typecasting">típuskonverziókról szóló fejezetet</link> további részletekért. </simpara> @@ -246,14 +238,13 @@ <simpara> A PHP a kifejezések egy teljes és hatékony megvalósítását biztosítja, és teljes dokumentációja meghaladja e kézikönyv - kereteit. A fenti példák rávilágítanak, hogy milyen állatfaj - a kifejezés és hogyan kell létrehozni hasznos kifejezéseket. - A kézikönyv hátralevõ részében ahol azt írjuk, hogy - <replaceable>expr</replaceable> akkor egy érvényes - PHP kifejezést értünk.</simpara> + kereteit. A fenti példák rávilágítanak, hogy mi is az a + kifejezés, és hogyan kell létrehozni hasznos kifejezéseket. + A kézikönyv hátralevõ részében az <replaceable>expr</replaceable> + alatt egy érvényes PHP kifejezést értünk.</simpara> </chapter> - + <!-- Keep this comment at the end of the file Local variables: mode: sgml Index: phpdoc/hu/language/functions.xml diff -u phpdoc/hu/language/functions.xml:1.13 phpdoc/hu/language/functions.xml:1.14 --- phpdoc/hu/language/functions.xml:1.13 Thu Dec 27 19:45:25 2001 +++ phpdoc/hu/language/functions.xml Sat Dec 29 18:57:12 2001 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="iso-8859-2"?> <!-- EN-Revision: 1.20 Maintainer: goba Status: ready --> -<!-- CREDITS: kgergely --> +<!-- CREDITS: kgergely, pgerzson --> <chapter id="functions"> <title>Függvények</title> @@ -29,19 +29,21 @@ definíciók is. </simpara> <simpara> - PHP 3-ban a függvényeket definiálnod kell használatuk elõtt. - Nincs ilyen megkötés PHP 4-ben. + PHP 3-ban a függvényeket definiálni kell, mielõtt hivatkozás történik rájuk + (függvényhívás elõtt). + PHP 4-ben nincs ez a megkötés. </simpara> <simpara> - A PHP nem támogatja a függvények polimorfizmusát, a függvényeket - nem tudod undefiniálni vagy újradefiniálni a már definiált függvényeket. + A PHP nem támogatja a függvények polimorfizmusát (többalakúságát), a + függvényekdefiníciókat nem lehet megszüntetni vagy újradefiniálni egy + már definiált függvényeket. </simpara> <simpara> A PHP 3 nem támogatja a változó számú függvényargumentumokat, bár az argumentumok kezdõértéke támogatott. Lásd az <link linkend="functions.arguments.default">Argumentumok kezdõértéke</link> címû részt bõvebb információért. - A PHP 4 mindkettõt támogatja. Lásd + A PHP 4 mindkettõ lehetõséget támogatja. Lásd a <link linkend="functions.variable-arg-list">Változó számú függvényargumentumok</link> címû részt és a <function>func_num_args</function>, <function>func_get_arg</function> és a <function>func_get_args</function> függvényeket részletesebb leírásért. @@ -57,16 +59,16 @@ ami egy vesszõvel határolt változó és/vagy konstanslista. </simpara> <para> - A PHP támogatja az érték szerinti (ez az alapértelmezett), - <link linkend="functions.arguments.by-reference">cím szerinti - paraméterátadást</link>, és az <link + A PHP támogatja az érték szerinti (ez az alapértelmezett) + <link linkend="functions.arguments.by-reference">referenciakénti + paraméterátadást</link> is, és az <link linkend="functions.arguments.default">argumentumok kezdõértékét</link>. A változó hosszúságú argumentumlisták csak a PHP 4-ben jelentek meg. Lásd a <link linkend="functions.variable-arg-list">változó hosszúságú argumentumlistákat</link> és a <function>func_num_args</function>, <function>func_get_arg</function> és a <function>func_get_args</function> - függvényeket részletesebb leírásért. Hasonló hatás érhetõ el PHP 3-ban - a függvénynek tömbargumentum átadásával: + függvényeket részletesebb leírásért. PHP 3-ban hasonló hatás érhetõ el + a függvénynek tömb típusú változó paraméterként történõ átadásával: <informalexample> <programlisting role="php"> <![CDATA[ @@ -80,18 +82,19 @@ </para> <sect2 id="functions.arguments.by-reference"> - <title>Argumentumok cím szerinti átadása</title> + <title>Referencia szerinti argumentumfeltöltés</title> <simpara> - Alapértelmezésben a függvényargumentumok érték szerint adódnak át + Alapértelmezésben a függvény paraméterei érték szerint adódnak át (vagyis ha megváltoztatod a változót a függvényen belül, annak a függvényen kívülre nincs hatása). Ha szeretnéd megengedni, hogy - a függvény módosítsa az argumentumát, cím szerint kell átadnod. + a függvény módosítsa az átadott paramétereket, referencia szerint + kell átadni azokat. </simpara> <para> - Ha azt szeretnéd, hogy egy függvényargumentum mindig cím szerint - adódjon át, a függvénydefinícióban az argumentum neve elé tegyél - egy & jelet. + Ha egy függvényargumentum mindig referencia szerint kell átadni, + akkor a függvénydefinícióban az argumentum neve elé egy & + jelet kell írni. <informalexample> <programlisting role="php"> <![CDATA[ @@ -108,10 +111,9 @@ </para> <para> - Ha egy olyan függvénynél szeretnél paramétert cím szerint átadni, - amely ezt nem teszi meg alapból, akkor a függvényhívásban az argumentum - neve elé kell tenned egy & jelet: - + Ha egy olyan függvénynél kell a paramétert referencia szerint átadni, + amely ezt nem teszi meg alapból, akkor a függvény hívásakor kell a + paraméterlistában a neve elé kell tenni az & jelet: <informalexample> <programlisting role="php"> <![CDATA[ @@ -164,10 +166,9 @@ pl. változó vagy objektum. </simpara> <para> - Figyelj rá, hogy amikor kezdõértékeket definiálsz, a kezdõértékkel - rendelkezõ paraméterek más argumentumoktól jobbra helyezkedjenek el; - különben a dolgok nem úgy mennek majd, ahogy várnád [hanem úgy, ahogy írtad :)]. - Nézd meg a következõ kódot: + Figyelj arra, hogy a kezdõértékkel rendelkezõ argumentumok más argumentumoktól + jobbra helyezkedjenek el; különben a dolgok nem úgy mennek majd, ahogy azt várnád + [hanem úgy, ahogy írtad :)]. Lásd a következõ kódot: <informalexample> <programlisting role="php"> <![CDATA[ @@ -176,7 +177,7 @@ return "Készítek egy köcsög $flavour ízû $type-t.\n"; } -echo joghurtot_keszit ("eper"); // nem úgy mûködik, mint szeretnéd !?! +echo joghurtot_keszit ("eper"); // nem úgy mûködik, mint szeretnéd !?!? ]]> </programlisting> </informalexample> @@ -237,7 +238,7 @@ <simpara> A PHP 4 támogatja a változó hosszúságú argumentumlistát a felhasználók által definiált függvényekben. Valóban nagyon - egyszerû, a <function>func_num_args</function>, + egyszerû kezelni ezt a <function>func_num_args</function>, <function>func_get_arg</function> és a <function>func_get_args</function> függvényekkel. </simpara> @@ -255,7 +256,7 @@ <title>Visszatérési értékek</title> <para> - Az opcionális return állítást használva adhatnak vissza értéket + Az elhagyható return állítást használva adhatnak vissza értéket a függvények. Bármely típus visszaadható, beleértve a listákat és az objektumokat is. <informalexample> @@ -269,16 +270,16 @@ ]]> </programlisting> </informalexample> - </para> - - <para> - Több értéket nem tud visszaadni a függvény, de hasonló - hatás érhetõ el úgy, ha listát adsz vissza. <note> <simpara> [Ha nincs return, az utolsó kifejezés értékével tér viszsza a függvény] </simpara> </note> + </para> + + <para> + Több értéket nem tud visszaadni a függvény, de hasonló + hatás érhetõ el ezen többszörös értékek listába szervezésével. <informalexample> <programlisting role="php"> <![CDATA[ @@ -292,10 +293,9 @@ </informalexample> </para> <para> - Ha referenciát szeretnél függvény visszatérési - értékeként adni, a & referencia operátort kell alkalmaznod - a függvény deklarálásakor és a a visszatérési érték - megadásakor is. + Ha a függvénynek referenciával kell visszatérnie, akkor az & referencia + operátort kell alkalmaznod a függvény deklarásákor és a a visszatérési érték + megadásakor is. <informalexample> <programlisting role="php"> <![CDATA[ @@ -321,18 +321,18 @@ (kivéve persze, hogy a 'function'-t ki kell cserélned 'old_function'-ra) </simpara> <simpara> - Ez egy helytelenített függvény, és csak a PHP/FI2->PHP 3 konverter - használhatja. + Ez egy ellenjavallt tulajdonság, és csak a PHP/FI2->PHP 3 konverter + használhatja. </simpara> <warning> <para> Az <literal>old_function</literal> segítségével deklarált függvényeket - nem hívhatod a PHP belsõ részébõl. Más dolgok mellett ez azt jelenti, hogy + nem hívhatod a PHP belsõ részébõl. Több minden mellett ez azt jelenti, hogy nem használhatod olyan függvényekben, mint az <function>usort</function>, <function>array_walk</function>, és a <function>register_shutdown_function</function>. - Meg tudod kerülni ezt a korlátozást úgy, hogy írsz egy keretfüggvényt, - (normál PHP 3 formában) ami meghívja az <literal>old_function</literal>-t. + Ez a korlátozás megkerülhetõ egy olyan keretfüggvény megírásával (normál PHP 3 formában), + amely meghívja az <literal>old_function</literal>-t. </para> </warning> @@ -343,10 +343,10 @@ <para> A PHP lehetõvé teszi a függvényváltozók használatát. - Ez azt jelenti, hogy ha egy változónév után zárójelek vannak, akkor - a PHP keresni fogja az azonos nevû függvényt bármilyen értékrõl legyen - is szó, és megpróbálja végrehajtani. Ezt többek között használhatod - callback, függvénytáblák implementálására... + Ha egy változónevet kerek zárójelek követnek, akkor a PHP megkeresi + a változó értékével azonos nevû függvényt, és megpróbálja azt végrehajtani. + Ezt többek között visszahívandó (callback) függvények vagy függvénytáblák + implementálására használható. </para> <para> Index: phpdoc/hu/language/operators.xml diff -u phpdoc/hu/language/operators.xml:1.14 phpdoc/hu/language/operators.xml:1.15 --- phpdoc/hu/language/operators.xml:1.14 Thu Dec 27 19:38:16 2001 +++ phpdoc/hu/language/operators.xml Sat Dec 29 18:57:12 2001 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="iso-8859-2"?> <!-- EN-Revision: 1.31 Maintainer: goba Status: ready --> -<!-- CREDITS: kgergely --> +<!-- CREDITS: kgergely,pgerzson --> <chapter id="language.operators"> <title>Operátorok</title> @@ -66,9 +66,9 @@ <sect1 id="language.operators.assignment"> <title>Hozzárendelõ operátorok</title> <simpara> - Az alapvetõ hozzárendelõ operátor az "=". Talán - elsõre azt hiszed, hogy ez az "egyenlõ valamivel" - jele. De nem. Valójában azt jelenti, hogy a bal oldali + Az alapvetõ hozzárendelõ operátor az "=". Elsõre + azt hihetnénk, hogy ez az "egyenlõ valamivel" + jele. Valójában azt jelenti, hogy a bal oldali operandus [ami az egyenlõségjel bal oldalán áll] a jobb oldali kifejezést kapja értékül. </simpara> @@ -85,10 +85,10 @@ </informalexample> </para> <para> - Sõt, az alapvetõ hozzárendelõ operátoron felül - vannak "kombinált" operátorok is az összes - kétoperandusú aritmetikai és stringoperátok számára, - amik lehetõvé teszik, hogy használjunk egy változót + Az alapvetõ hozzárendelõ operátoron felül + vannak ún. "kombinált" operátorok is az összes + kétoperandusú aritmetikai és sztring operátorok számára, + amelyek lehetõvé teszik, hogy használjunk egy változót egy kifejezésben, majd rögtön be is állítsuk a változót a kifejezés értékére. Például: <informalexample> @@ -97,24 +97,23 @@ $a = 3; $a += 5; // $a-t 8-ra állítja, mintha $a = $a + 5;-öt írtunk volna $b = "Csecs "; -$b .= "Emõ"; // $b-t "Csecs Emõ"-re állítja, egyenértékû: $b = $b . "Emõ"; +$b .= "Emõ"; // $b "Csecs Emõ" lesz, egyenértékû párja: $b = $b . "Emõ"; ]]> </programlisting> </informalexample> </para> <para> - A hozzárendelés az eredeti változót újba másolja (érték - szerint), így az egyiken elvégzett változtatások a másikat - nem érintik. Ezt néha fontos tudni, például ha mondjuk - egy nagy tömböt kell másolni egy sokszor végrehajtott - ciklus belsejében. A PHP 4 támogatja paraméterek érték - szerinti átadását a <computeroutput>$var = - &$othervar;</computeroutput> szintaxissal, - de ez PHP 3-ban nem mûködik. A 'cím szerinti paraméterátadás' - azt jelenti, hogy mindkét változó ugyanarra az adatra - mutat, tehát semmi nem másolódik sehová [a változó címét - kivéve...] További információkat a referenciákról a <link + A hozzárendelés az eredeti változót az újba másolja érték + szerint, így az egyiken elvégzett változtatások a másikat + nem érintik. Ezt fontos tudni, például egy sokszor végrehajtott + ciklus belsejében nagy tömbök másolásakor. A PHP 4 támogatja a + <computeroutput>$var =&$othervar;</computeroutput> szintaxisú + referencia szerinti érték hozzárendelést is, + de ez PHP 3-ban nem mûködik. A 'referencia szerinti értékhozzárendelés' + azt jelenti, hogy mindkét változó ugyanarra az adatra fog mutatni, és + nem történik meg a változó értékének lemásolása. + További információkat a referenciákról a <link linkend="language.references">Referenciák részletesen</link> címû fejezetben olvashatsz. </para> @@ -124,8 +123,8 @@ <sect1 id="language.operators.bitwise"> <title>Bitorientált operátorok</title> <simpara> - A bitorientált operátorok teszik lehetõvé, hogy egy - egészen belül bizonyos biteket beállítsunk, vagy kimaszkoljunk. + A bitorientált operátorok teszik lehetõvé, hogy egész típusú számokon + belül bizonyos biteket beállítsunk, vagy lefedjünk (maszkolás). </simpara> <table> @@ -142,22 +141,22 @@ <row> <entry>$a & $b</entry> <entry>És</entry> - <entry>Azon helyeken, ahol mind $a-ban, mind $b-ben '1' volt, - az eredményben '1' lesz, egyébként '0'.</entry> + <entry>Ott lesz '1' az eredményben, ahol $a és $b mindegyikében az a bit '1'-es. + Minden más biten '0'.</entry> </row> <row> <entry>$a | $b</entry> <entry>Vagy</entry> - <entry>Ott lesz '1' az eredmény, ahol vagy $a-ban, vagy $b-ben '1' állt.</entry> + <entry>Ott lesz '1' az eredményben, ahol $a és $b közül legalább az egyik azon a bitje '1'-es. + Minden más biten '0'.</entry> </row> <row> <entry>$a ^ $b</entry> <entry>Kizáró vagy</entry> - <entry>Ott lesz '1', ahol vagy $a-ban, vagy $b-ben '1' áll, de csak az - egyikben. [Más közelítésben ott lesz '1' az eredmény, ahol különbözõ bitek + <entry>Ott lesz '1' az eredményben, ahol $a és $b közül csakis pontosan az egyikben '1' állt. Minden más biten '0'. + [Más közelítésben ott lesz '1' az eredményben, ahol különbözõ bitek álltak $a-ban és $b-ben; megint más közelítésben $a azon bitjei - invertálódnak, amely helyeken $b-ben '1' áll (=$b azon bitjeit - invertálja, ahol $a-ban '1' áll)]</entry> + invertálódnak, amely helyeken $b-ben '1' áll]</entry> </row> <row> <entry>~ $a</entry> @@ -167,15 +166,15 @@ <row> <entry>$a << $b</entry> <entry>Eltolás balra</entry> - <entry>$a bitjeit $b-vel balra tolja (minden tolás 2-vel való + <entry>$a bitjeit $b számú bittel balra tolja (minden bitnyi eltolás 2-vel való szorzást jelent [amíg el nem fogynak a bitek, utolsó helyen elõjelbit van ?!])</entry> </row> <row> <entry>$a >> $b</entry> <entry>Eltolás jobbra</entry> - <entry>$a bitjeit $b-vel jobbra tolja (minden tolás 2-vel való - [egész!]osztást jelent [vigyázz! negatív számot inkább ne tolj jobbra!!])</entry> + <entry>$a bitjeit $b számú bittel jobbra tolja (minden bitnyi eltolás 2-vel való + egész-osztást jelent. [Vigyázz, negatív számot inkább ne tolj jobbra!])</entry> </row> </tbody> </tgroup> @@ -204,55 +203,55 @@ <row> <entry>$a == $b</entry> <entry>Egyenlõ</entry> - <entry>Igaz, ha $a és $b értéke egyenlõ</entry> + <entry>Igaz (&true;), ha $a és $b értéke egyenlõ</entry> </row> <row> <entry>$a === $b</entry> <entry>Azonos</entry> - <entry>Igaz, ha $a és $b értéke egyenlõ, és azonos típusúak (csak PHP 4)</entry> + <entry>Igaz (&true;), ha $a és $b értéke egyenlõ, és azonos típusúak (csak PHP 4)</entry> </row> <row> <entry>$a != $b</entry> <entry>Nem egyenlõ</entry> - <entry>Igaz, ha $a és $b értékei különbözõk</entry> + <entry>Igaz (&true;), ha $a és $b értékei különbözõk</entry> </row> <row> <entry>$a <> $b</entry> <entry>Nem egyenlõ</entry> - <entry>Igaz, ha $a és $b értékei különbözõk</entry> + <entry>Igaz (&true;), ha $a és $b értékei különbözõk</entry> </row> <row> <entry>$a !== $b</entry> <entry>Nem azonos</entry> - <entry>Igaz, ha $a és $b értékei vagy típusai különbözõk (csak PHP 4)</entry> + <entry>Igaz (&true;), ha $a és $b értékei vagy típusai különbözõk (csak PHP 4)</entry> </row> <row> <entry>$a < $b</entry> <entry>Kisebb mint</entry> - <entry>Igaz, ha $a szigorúan kisebb, mint $b</entry> + <entry>Igaz (&true;), ha $a szigorúan kisebb, mint $b</entry> </row> <row> <entry>$a > $b</entry> <entry>Nagyobb mint</entry> - <entry>Igaz, ha $a szigorúan nagyobb, mint $b</entry> + <entry>Igaz (&true;), ha $a szigorúan nagyobb, mint $b</entry> </row> <row> <entry>$a <= $b</entry> <entry>Kisebb, vagy egyenlõ</entry> - <entry>Igaz, ha $a kisebb, vagy egyenlõ, mint $b</entry> + <entry>Igaz (&true;), ha $a kisebb, vagy egyenlõ, mint $b</entry> </row> <row> <entry>$a >= $b</entry> <entry>Nagyobb, vagy egyenlõ</entry> - <entry>Igaz, ha $a nagyobb, vagy egyenlõ, mint $b</entry> + <entry>Igaz (&true;), ha $a nagyobb, vagy egyenlõ, mint $b</entry> </row> </tbody> </tgroup> </table> <para> - Van egy feltételes operátor is, a "?:" (ternális) - operátor, ami úgy muködik, mint a C-ben és sok más nyelvben. + A feltételes "?:" (ternális) + operátor úgyanúgy mûködik, mint C-ben és sok más nyelvben. <informalexample> <programlisting> @@ -263,9 +262,9 @@ </informalexample> A kifejezés <replaceable>kif2</replaceable>-t értékeli ki, ha - <replaceable>kif1</replaceable> igaznak bizonyul, és + <replaceable>kif1</replaceable> igaznak bizonyul (&true;), és <replaceable>kif3</replaceable>-at, ha - <replaceable>kif1</replaceable> hamis. + <replaceable>kif1</replaceable> hamis (&false;). </para> </sect1> @@ -274,8 +273,8 @@ <title>Hibakezelõ operátorok</title> <simpara> - A PHP egy hibakezelõ operátort támogat, az at (kukac) jelet (@). - Ha egy PHP kifejezés elé írod, a kifejezés által esetlegesen + A PHP egy hibakezelõ operátort támogat, az at jelet (@ - kukac). + PHP kifejezés elé írva a kifejezés által esetlegesen generált hibaüzenete(ke)t figyelmen kívül hagyja a rendszer. </simpara> @@ -284,8 +283,8 @@ szolgáltatás be van kapcsolva, bármilyen a kifejezés által generált hibaüzenet a $php_errormsg globális változóba kerül tárolásra. Ez a változó minden hiba esetén felülíródik, - ezért ellenõrizd minél hamarabb a kifejezést követõen - ha használható információt szeretnél kapni. + ezért használható információk kinyerése érdekében a kifejezést + követõen ezt minél hamarabb ellenõrizni kell. </simpara> <para> @@ -307,27 +306,27 @@ </para> <note> <simpara> - A @ operátor csak kifejezésekre mûködik. Egy egyszerû ökölszabály, - hogy ha valaminek az értékét tudod venni, akkor az elé a @ - operátor is oda tehetõ. Például használhatod változók, - függvények és <function>include</function> hivások, konstansok, - neve elõtt és sok más esetben. Nem írhatod azonban oda függvény - és osztály definíciók, vagy nyelvi szerkezetek (mint például + A @ operátor csak kifejezésekre mûködik. Egyszerû ökölszabályként + alkalmazandó, ha valaminek az értelmezett az értéke, akkor az elé a @ + operátor is oda tehetõ. Ekképpen például használható változók, + függvények és <function>include</function> hívások, állandók + neve elõtt és sok más esetben. Nem használható azonban függvény + és osztály definíciók vagy nyelvi szerkezetek (mint például <literal>if</literal> és <literal>foreach</literal> utasítások) - elé. + elõtt. </simpara> </note> <simpara> - Lásd még: <function>error_reporting</function>. + Lásd még: <function>error_reporting</function>! </simpara> <warning> <para> Jelenleg a "@" hibakezelõ operátor kikapcsolja azon kritikus hibák - jelentését is, amik megállítják a szkript futását. Más problémák - mellett, ha egy függvénybõl érkezõ hibaüzenetek elnyelésére - használod a "@" jelet, meg fog állni a szkript futása, ha - nem létezik a megadott függvény, vagy elírtad a nevét. + jelentését is, amelyek megszakítják a szkript futását. Más problémák + mellett, ha függvénybõl érkezõ hibaüzenetek elnyelésére + használod a "@" jelet, le fog állni a szkript futása, ha + nem létezik a megadott függvény vagy elírtad annak nevét. </para> </warning> @@ -338,19 +337,16 @@ <title>Végrehajtó operátorok</title> <para> - A PHP-nek egy végrehajtó operátora van: [na nem kell semmi - rosszra gondolni, semmi köze az adóhatósághoz...]: - a visszaidézõjel [aki tudja az igazi nevét, ne rejtse - véka alá!] (``). Ezek nem szimpla idézõjelek! A - PHP megpróbálja a string tartalmát, mint egy shell command-ot - [kagyló parancsot :)] végrehajtani: a kimenet lesz az egész - értéke (nem kiírja a képernyõre, hanem hozzárendelhetõ - egy változóhoz). + A PHP-ban létezik egy program-végrehajtó operátor: a visszaidézõjel + [aki tudja az igazi nevét, ne rejtse véka alá!] (``). Ezek nem szimpla idézõjelek! A + PHP megpróbálja a sztring tartalmát parancssorból futtatandó utasításként + végrehajtani, amelynek a kimenete lesz az operátor értéke. + Ez nem egyszerûen a kimenetre kerül, hanem hozzárendelhetõ egy változóhoz. </para> <para> [Az alábbi kis példa az aktuális könyvtár tartalmát - (hosszú lista, rejtett fájlok is) formázva írja ki (illetve - fix szélességû betûket használva, újsor karaktereket + (hosszú lista, rejtett fájlok is) formázva írja ki + (fix szélességû betûket használva, újsor karaktereket tiszteletben tartva)] <informalexample> @@ -385,8 +381,8 @@ <title>Növelõ/csökkentõ operátorok</title> <para> - A PHP támogatja a C-szerû pre- és postinkrementáló - és dekrementáló operátorokat. + A PHP támogatja a C-szerû ún. elõ- és utónövekményes ill. + csökkentõ operátorokat. </para> <table> @@ -402,22 +398,22 @@ <tbody> <row> <entry>++$a</entry> - <entry>Preinkrementálás</entry> + <entry>elõnövekményes</entry> <entry>Növeli $a-t eggyel, majd visszaadja $a értékét</entry> </row> <row> <entry>$a++</entry> - <entry>Postinkrementálás</entry> + <entry>utónövekményes</entry> <entry>Visszaadja $a értékét, majd növeli $a-t eggyel</entry> </row> <row> <entry>--$a</entry> - <entry>Predekrementálás</entry> + <entry>elõcsökkentõ</entry> <entry>Csökkenti $a-t eggyel, majd visszaadja $a értékét</entry> </row> <row> <entry>$a--</entry> - <entry>Postdekrementálás</entry> + <entry>utócsökkentõ</entry> <entry>Visszaadja $a értékét, majd csökkenti $a-t eggyel</entry> </row> </tbody> @@ -430,22 +426,22 @@ <programlisting role="php"> <![CDATA[ <?php -echo "<h3>Postinkrementálás</h3>"; +echo "<h3>Utónövekményes</h3>"; $a = 5; echo "5-nek kell lennie: " . $a++ . "<br>\n"; echo "6-nak kell lennie: " . $a . "<br>\n"; -echo "<h3>Preinkrementálás</h3>"; +echo "<h3>Elõnövekményes</h3>"; $a = 5; echo "6-nak kell lennie: " . ++$a . "<br>\n"; echo "6-nak kell lennie: " . $a . "<br>\n"; -echo "<h3>Postdekrementálás</h3>"; +echo "<h3>Elõcsökkentõ</h3>"; $a = 5; echo "5-nek kell lennie: " . $a-- . "<br>\n"; echo "4-nek kell lennie: " . $a . "<br>\n"; -echo "<h3>Predekrementálás</h3>"; +echo "<h3>Utócsökkentõ</h3>"; $a = 5; echo "4-nek kell lennie: " . --$a . "<br>\n"; echo "4-nek kell lennie: " . $a . "<br>\n"; @@ -475,32 +471,32 @@ <row> <entry>$a and $b</entry> <entry>És</entry> - <entry>Csak akkor igaz, ha mind $a mind $b igazak</entry> + <entry>Pontosan akkor igaz (&true;), ha mind $a mind $b igazak (&true;).</entry> </row> <row> <entry>$a or $b</entry> <entry>Vagy</entry> - <entry>Akkor igaz, ha $a és $b között van igaz</entry> + <entry>Pontosan akkor igaz (&true;), ha $a és $b között van igaz (&true;).</entry> </row> <row> <entry>$a xor $b</entry> <entry>Kizáró vagy</entry> - <entry>Akkor igaz, ha $a és $b közül pontosan egy igaz</entry> + <entry>Pontosan akkor igaz (&true;), ha $a és $b közül pontosan egy igaz (&true;).</entry> </row> <row> <entry>! $a</entry> <entry>Tagadás</entry> - <entry>Igaz, ha $a nem igaz</entry> + <entry>Pontosan akkor igaz (&true;), ha $a nem igaz (&true;).</entry> </row> <row> <entry>$a && $b</entry> <entry>És</entry> - <entry>Csak akkor igaz, ha mind $a mind $b igazak</entry> + <entry>Pontosan akkor igaz (&true;), ha mind $a mind $b igaz (&true;).</entry> </row> <row> <entry>$a || $b</entry> <entry>Vagy</entry> - <entry>Akkor igaz, ha $a és $b között van igaz</entry> + <entry>Pontosan akkor igaz (&true;), ha $a és $b között van igaz (&true;).</entry> </row> </tbody> </tgroup> @@ -522,28 +518,26 @@ <literal>1 + 5 * 3</literal> kifejezésben, a kifejezés értéke 16, és nem 18, mert a szorzás operátorának, a ("*")-nak nagyobb precedenciája van, mint az - összeadásénak ("+"). Zárójeleket használhatsz - a precedencia meghatározására, ha szükséges. Például - <literal>(1 + 5) * 3</literal> eredménye <literal>18</literal> + összeadásénak ("+"). Zárójelek segítségével tetszõleges + precedenciát lehet felállítani egy kifejezésen belül, ha szükséges. + Például a <literal>(1 + 5) * 3</literal> eredménye <literal>18</literal> lesz. </para> <para> [Az asszociativitás talán megér egy kis magyarázatot. Ez azt határozza meg, hogy az adott szinten levõ - operátorok egymás utáni zárójel nélküli használatát hogyan - értelmezi a fordító. Talán egy példával kicsit érthetõbbé - tehetõ: pl. 1-2+3 értelmezhetõ (1-2)+3-nak, eredménye 2, - vagy 1-(2+3)-nak, eredménye -4. Az elõbbi kiértékelés, - (mely <emphasis>balról jobbra asszociatív</emphasis>) a + operátorok egymás utáni, zárójel nélküli használatát hogyan + értelmezi a fordító. Egy példán keresztül talán érthetõbbé + válik: 1-2+3 értelmezhetõ (1-2)+3-nak (= 2), vagy 1-(2+3)-nak (= -4). + Az elõbbi kiértékelés, amely <emphasis>balról jobbra asszociatív</emphasis>, a helyes ebben az esetben. A második kiértékelés pedig - <emphasis>jobbról balra asszociatív</emphasis> (ilyen - például a hatványozás, ami nincs a nyelvben implementálva. - Viszont van egy pow nevû függvény. Szóval 2**3**2 (ahol - ** <emphasis>lenne</emphasis> a hatványozás) helyesen - 2 a kilencediken = 512 lenne.) Vannak nem köthetõ - operátorok is, ilyenek az összehasonlító operátorok. Tehát - <emphasis>nem</emphasis> írható, hogy 2<$x<4.] - + <emphasis>jobbról balra asszociatív</emphasis> - ilyen lenne + például a hatványozás, amely nincs a nyelvben implementálva (erre szolgál + <function>pow</function>). Ha a ** <emphasis>lenne</emphasis> a + hatványozás, akkor a 2**3**2 helyesen 2 a 9-en = 512 lenne. + Vannak nem köthetõ (nem asszociatív) operátorok is, ilyenek az + összehasonlító operátorok. A PHP-ban tehát <emphasis>nem</emphasis> + értelmes a 2<$x<4 kifejezés.] </para> <para> Az alábbi táblázat az operátorokat precedenciájuk @@ -649,12 +643,12 @@ <title>String operátorok</title> <simpara> Két string operátor van. Az egyik az összefûzés operátor - ('.'), ami bal és jobb argumentumának összefûzöttjével + ('.'), amely bal és jobb oldali operandusának összefûzöttjével tér vissza. A második az összefûzõ-hozzárendelõ operátor - ('.='), ami szövegesen hozzáfûzi a jobb argumentumát a bal oldali - argumentum végéhez. Olvasd el a <link + ('.='), amely hozzáfûzi a jobb oldalon szereplõ szöveges értéket a bal oldali + operandus végéhez. Olvasd el a <link linkend="language.operators.assignment">Hozzárendelõ - operátorok</link> címû részt. + operátorok</link> címû részt! </simpara> <para> <informalexample> Index: phpdoc/hu/language/control-structures.xml diff -u phpdoc/hu/language/control-structures.xml:1.14 phpdoc/hu/language/control-structures.xml:1.15 --- phpdoc/hu/language/control-structures.xml:1.14 Sat Dec 15 09:49:54 2001 +++ phpdoc/hu/language/control-structures.xml Sat Dec 29 18:57:12 2001 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="iso-8859-2"?> -<!-- EN-Revision: 1.37 Maintainer: goba Status: ready --> -<!-- CREDITS: kgergely --> +<!-- EN-Revision: 1.48 Maintainer: goba Status: ready --> +<!-- CREDITS: kgergely,pgerzson --> <chapter id="control-structures"> <title>Vezérlési szerkezetek</title> @@ -20,24 +20,29 @@ <title><literal>if</literal></title> <para> Az <literal>if</literal> szerkezet az egyik legfontosabb - szerkezete a legtöbb nyelvnek - így a PHP-nek is. A PHP - biztosít egy C-szerû <literal>if</literal> szerkezetet: + szerkezete a legtöbb nyelvnek - így a PHP-nek is. A PHP a C-ben megismerthez + hasonló <literal>if</literal> szerkezettel bír: <informalexample> <programlisting> +<![CDATA[ if (kifejezés) utasítás +]]> </programlisting> </informalexample> </para> <simpara> - Amint a kifejezésekrõl szóló fejezetben szerepel, a kifejezés - igazságértéke értékelõdik ki. Ha <replaceable>kifejezés</replaceable> - &true;, a PHP végrehajtja az utasítást; ha - &false; figyelmen kívül hagyja. + Amint a <link linkend="language.expressions">kifejezésekrõl szóló fejezetben</link> + szerepel, a kifejezés logikai értéke értékelõdik ki. + Ha <replaceable>kifejezés</replaceable> &true;, akkor a PHP végrehajtja az utasítást; + ha &false;, akkkor figyelmen kívül hagyja. Arról, hogy mely értékek tekinthetõk + &false;-nak, a <link + linkend="language.types.boolean.casting">Logikai értékké alakítás</link> c. + fejezetben olvashatsz. </simpara> <para> Az alábbi példa kiírja, hogy <computeroutput>a nagyobb, - mint b</computeroutput> ha <replaceable>$a</replaceable> nagyobb, + mint b</computeroutput>, ha <replaceable>$a</replaceable> nagyobb, mint <replaceable>$b</replaceable>: <informalexample> <programlisting role="php"> @@ -49,13 +54,12 @@ </informalexample> </para> <para> - Gyakran sok utasítást kellene feltételesen végrehajtanod. - Persze, hogy nem kell minden utasításhoz külön - <literal>if</literal>-et írnod. Inkább foglald - utasításblokkba az utasításokat. Például az alábbi kód - kiírja, hogy <computeroutput>a nagyobb, mint b</computeroutput> + Gyakran sok utasítást kell feltételhez kötve végrehajtani. + Természetesen nem kell minden utasításhoz külön + <literal>if</literal>-et írni. Az utasításokat utasításblokkba lehet összefogni. + Az alábbi kód például kiírja, hogy <computeroutput>a nagyobb, mint b</computeroutput> ha <replaceable>$a</replaceable> nagyobb, mint - <replaceable>$b</replaceable>, és aztán hozzárendeli + <replaceable>$b</replaceable>, és utána hozzárendeli <replaceable>$a</replaceable> értékét <replaceable>$b</replaceable>-hez: <informalexample> @@ -71,24 +75,22 @@ </para> <simpara> A feltételes utasítások vég nélkül további <literal>if</literal> - utasításokba ágyazhatók, amely a programod különbözõ + utasításokba ágyazhatók, amely a program különbözõ részeinek feltételes végrehajtását igen hatékonnyá teszi. </simpara> </sect1> - + <sect1 id="control-structures.else"> <title><literal>else</literal></title> <para> - Gyakran van rá szükség, hogy ha teljesül egy bizonyos feltétel, - akkor valamilyen utasítást kell végrehajtani, de ha nem, - akkor egy másik utasítást. Erre való az - <literal>else</literal>. Az <literal>else</literal> - kibõvíti az <literal>if</literal> utasítást, hogy akkor hajtson - végre utasítást, amikor az <literal>if</literal> kifejezés nem - teljesül, vagyis &false;. Például az alábbi - kód kiírja, hogy <computeroutput>a nagyobb, mint - b</computeroutput> ha <replaceable>$a</replaceable> nagyobb, mint - <replaceable>$b</replaceable>, egyébként az <computeroutput>a NEM + Gyakori, hogy egy bizonyos feltétel teljesülése esetén + valamilyen utasítást kell végrehajtani, és valamilyen másik utasítást, + ha nem teljesül a feltétel. Erre való az <literal>else</literal>. + Az <literal>else</literal> kibõvíti az <literal>if</literal> utasítást, + hogy akkor hajtson végre utasítást, amikor az <literal>if</literal> kifejezés &false;-ként + értékelõdik ki. Az alábbi kód például kiírja, hogy <computeroutput>a nagyobb, mint + b</computeroutput> ha <replaceable>$a</replaceable> + <replaceable>$b</replaceable>-nél nagyobb, egyébként az <computeroutput>a NEM nagyobb, mint b</computeroutput> üzenetet írja ki: <informalexample> <programlisting role="php"> @@ -103,15 +105,13 @@ </informalexample> Az <literal>else</literal> utasítás csak akkor hajtódik végre, - ha az <literal>if</literal> kifejezés &false; - értékû, és az összes <literal>elseif</literal> kifejezés is - &false;. Ne ijedj meg, errõl még nem volt - szó, ez a <link linkend="control-structures.elseif">következõ - fejezet</link>. + ha az <literal>if</literal> kifejezés és az összes <literal>elseif</literal> + kifejezés is &false; értékû. Az <link linkend="control-structures.elseif">elseif + </link>-rõl most olvashatsz. </para> </sect1> - + <sect1 id="control-structures.elseif"> <title><literal>elseif</literal></title> <para> @@ -124,8 +124,8 @@ kifejezés értéke &false; lenne. Azonban az <literal>else</literal>-sel ellentétben csak akkor hajtra végre az alternatív kódrészt, ha az <literal>elseif</literal> kifejezés - &true;. Például az alábbi kód üdvözli Menõ Manót, - és Víz Eleket, vagy kiírja, hogy ismeretlen, $a értékétõl függõen: + &true;. Az alábbi kód például - $a értékétõl függõen - üdvözli Menõ Manót, + és Víz Eleket, vagy kiírja, hogy ismeretlen: <informalexample> <programlisting role="php"> <![CDATA[ @@ -141,38 +141,24 @@ </informalexample> </para> <simpara> - Egy <literal>if</literal> kifejezést számos <literal>elseif</literal> - követheti. Az elsõ olyan <literal>elseif</literal> kifejezés hajtódik - végre (ha van), amely értéke &true;. A PHP-ban, - írhatsz 'else if'-et is (két szó) és ugyanúgy fog viselkedni, - mint az 'elseif' (egy szó). A szintaktikai jelentés 'kicsit' - eltérõ (ha ismered a C-t, nos ez pont úgy mûködik) de végülis - ugyanaz lesz a végeredmény. + Egy <literal>if</literal> kifejezést több <literal>elseif</literal> + követhet. Az elsõ olyan <literal>elseif</literal> kifejezés hajtódik + végre (ha van), amely értéke &true;. A PHP-ban az 'else if' is (különírva) + használható és ugyanúgy fog viselkedni, mint az 'elseif' (egybeírva). + A szintaktikai jelentés 'kicsit' eltérõ (ha ismered a C-t, nos ez pont + úgy mûködik) de végülis ugyanaz lesz a végeredmény. </simpara> <simpara> Az <literal>elseif</literal> ág csak akkor hajtódik végre, - ha az õt megelõzõ <literal>if</literal> kifejezés, és az - összes köztes <literal>elseif</literal> kifejezések - &false; értékûek, de az adott - <literal>elseif</literal> kifejezése - &true;. + ha az õt megelõzõ <literal>if</literal> kifejezés, és az összes köztes + <literal>elseif</literal> kifejezések &false; értékûek, de az adott + <literal>elseif</literal> kifejezése &true;. </simpara> </sect1> - + <sect1 id="control-structures.alternative-syntax"> <title>Vezérlési szerkezetek alternatív szintaxisa</title> <para> - <warning> - <simpara> - Az alternatív szintaxis használata nem javasolt a PHP 4-ben. - Egyszerûen olvashatatlanabb kódot eredményez, és túl - komplikálttá válik a normál formával vegyítéve. Bár nincs - terv ennek a szintaxisnak a megszüntetésére, nem zárható ki, - hogy egy nap már nem fog mûködni. Mi figyelmeztettünk téged! - </simpara> - </warning> - </para> - <para> A PHP bizonyos vezérlési szerkezeteihez egy alternatív szintaxist is nyújt; név szerint: az <literal>if</literal>, <literal>while</literal>, @@ -180,7 +166,7 @@ és <literal>switch</literal> számára. Minden esetben az alternatív szintaxisnál a nyitó kapcsos zárójel helyett kettõspontot (:) kell - írni, a záró zárójel helyett pedig a vezérlési szerkezetnek + írni, a záró zárójel helyett pedig a vezérlési szerkezetnek megfelelõ <literal>endif;</literal>, <literal>endwhile;</literal>, <literal>endfor;</literal>, <literal>endforeach;</literal>, vagy <literal>endswitch;</literal> @@ -235,10 +221,12 @@ <para> A <literal>while</literal> ciklusok a PHP legegyszerûbb ciklusai. Éppen úgy viselkednek, mint a C nyelvbeli - megfelelõik. A <literal>while</literal> általános szintaxisa: + megfelelõik. A <literal>while</literal> általános szintaxisa: <informalexample> <programlisting> +<![CDATA[ while (kifejezés) utasítás +]]> </programlisting> </informalexample> </para> @@ -255,23 +243,25 @@ akkor sem áll meg, csak az iteráció végén [feltéve ha közben megint meg nem változik a feltétel]. Amikor a <literal>while</literal> kifejezés értéke már - az elsõ vizsgálatkor &false;, - az utasítás(blokk) egyszer sem fog végrehajtódni. + az elsõ vizsgálatkor &false;, akkor az utasítás(blokk) + egyszer sem kerül végrehajtásra. </simpara> <para> Az <literal>if</literal> szerkezethez hasonlóan több utasítást csoportosítani lehet a <literal>while</literal> - ciklusban kapcsos zárójelekkel, vagy az alternatív szintaxis + ciklusban kapcsos zárójelekkel, vagy az alternatív szintaxis használatával: <informalexample> <programlisting> +<![CDATA[ while (kifejezés): utasítás ... endwhile; +]]> </programlisting> </informalexample> </para> <para> - Az alábbi példák egyformák, a számokat írják - ki 1-tõl 10-ig: + Az alábbi példák ugyanazt csinálják - 1-tõl 10-ig kiírják + a számokat: <informalexample> <programlisting> <![CDATA[ @@ -283,9 +273,9 @@ utána növelünk (post-inkrementáció) */ } - + /* 2. variáció */ - + $i = 1; while ($i <= 10): print $i; @@ -296,7 +286,7 @@ </informalexample> </para> </sect1> - + <sect1 id="control-structures.do.while"> <title><literal>do..while</literal></title> <simpara> @@ -306,16 +296,16 @@ értékelõdik ki, és nem az elején. A fõ különbség a hagyományos <literal>while</literal> ciklushoz képest, hogy a <literal>do..while</literal> ciklus elsõ iterációja garantáltan - lefut (a kifejezés igazságértéke csak az iteráció végén - ellenõrzõdik), ami nem garantált a hagyományos + lefut (a kifejezés igazságértékét csak az iteráció végén + ellenõrzi), amely nem garantált a hagyományos <literal>while</literal> ciklusnál (itt a kifejezés - igazságértéke az iteráció kezdetén értékelõdik ki, - ha értéke &false; kezdetben, a ciklus - végrehajtása azonnal befejezõdik). + igazságértéke az iteráció kezdetén kerül kiértékelésre, + ha értéke kezdetben &false;, akkor a ciklus végrehajtása + azonnal befejezõdik). </simpara> <para> Csak egy szintaxisa van a <literal>do..while</literal> ciklusnak: - + <informalexample> <programlisting role="php"> <![CDATA[ @@ -336,7 +326,7 @@ <para> Haladó C programozók már bizonyára jártasak a <literal>do..while</literal> ciklus másfajta használatában. - Például utasításblokk közepén ki lehet lépni + Például utasításblokk közepén ki lehet lépni a blokkból, ha az utasításblokkot <literal>do..while</literal>(0), közé tesszük, és <link linkend="control-structures.break"><literal>break</literal></link> @@ -363,27 +353,29 @@ </informalexample> </para> <simpara> - Ne aggódj, ha nem érted ezt azonnal, vagy ha egyáltalán nem - érted. Írhatsz szkripteket, sõt hatékony szkripteket ennek a - 'feature'-nek a használata nélkül is. + Ne aggódj, ha ezt nem azonnal vagy egyáltalán értetted meg. + Lehet szkripteket - sõt hatékony szkripteket - írni ennek a + lehetõségnek a használata nélkül is. </simpara> </sect1> - + <sect1 id="control-structures.for"> <title><literal>for</literal></title> <para> A <literal>for</literal> cilus a legbonyolultabb ciklus a PHP-ben. - Éppen úgy viselkedik, mint a C nyelvbeli + Éppen úgy viselkedik, mint a C nyelvbeli párja (–> C-ben értõknek tovább gomb). A - <literal>for</literal> ciklus szintaxisa: + <literal>for</literal> ciklus szintaxisa: <informalexample> <programlisting> +<![CDATA[ for (kif1; kif2; kif3) utasítás +]]> </programlisting> </informalexample> </para> <para> - [A fenti <literal>for</literal> szerkezettel ekvivalens az alábbi, + [A fenti <literal>for</literal> szerkezettel megegyezõ az alábbi, remélhetõleg már ismerõs kifejezés: <informalexample> <programlisting> @@ -397,54 +389,53 @@ Remélem így már érthetõbb lesz az alábbi magyarázat]. </para> <simpara> - Az elsõ kifejezés (<replaceable>kif1</replaceable>) egyszer - értékelõdik ki (hajtódik végre), mégpedig a ciklus elején. + Az elsõ kifejezés (<replaceable>kif1</replaceable>) + a ciklus kezdetén egyszer kerül végrehajtásra. </simpara> <simpara> - Minden iteráció elején - <replaceable>kif2</replaceable> kiértékelõdik. Ha értéke - &true;, a ciklus folytatódik, és az - <replaceable>utasítás</replaceable> végrehajtódik. Ha értéke - &false;, a ciklus véget ér. + Minden iteráció elején <replaceable>kif2</replaceable> kiértékelõdik. + Ha értéke &true;, akkor a ciklus folytatódik, és az + <replaceable>utasítás</replaceable>ra kerül a vezérlés. + Ha értéke &false;, akkor a ciklus véget ér. </simpara> <simpara> - Minden iteráció végén <replaceable>kif3</replaceable> - kiértékelõdik (végrehajtódik). + Minden iteráció végén <replaceable>kif3</replaceable> is végrehajtásra kerül. </simpara> <simpara> Bármelyik kifejezést el lehet hagyni. Ha - <replaceable>kif2</replaceable> üres, az azt jelenti, hogy a - ciklus a végtelenségig fut [hacsak nem jön a jó - tündér break utasítás képében...] (a PHP implicit - &true;-nak feltételezi, mint a C). - Ez nem annyira haszontalan, mint gondolnád, hiszen - gyakran fejezheted be a ciklust egy feltételes + <replaceable>kif2</replaceable> üres, az azt jelenti, hogy a + ciklus a végtelenségig fut [hacsak nem jön a jó + tündér break utasítás képében...] (A PHP implicit + &true;-nak feltételezi az üres <replaceable>kif2</replaceable>-t, + mint a C.) Ez nem annyira haszontalan, mint elsõre amennyire elsõnek tûnik, + hiszen gyakran fejezheted be a ciklust egy feltételes kifejezésbe ágyazott <link linkend="control-structures.break"><literal>break</literal></link> - kifejezéssel a <literal>for</literal> igazságértékelése helyett. + kifejezéssel a <literal>for</literal> feltétel kifejezésének kiértékelése + helyett. </simpara> <para> - Nézd az alábbi példákat. Mindegyikük kiírja a számokat egytõl tízig: + Nézd az alábbi példákat, mindegyikük kiírja a számokat 1-tõl 10-ig: <informalexample> <programlisting role="php"> <![CDATA[ /* téma */ - + for ($i = 1; $i <= 10; $i++) { print $i; } - + /* 1. variáció */ - + for ($i = 1;;$i++) { if ($i > 10) { break; } print $i; } - + /* 2. variáció */ - + $i = 1; for (;;) { if ($i > 10) { @@ -453,9 +444,9 @@ print $i; $i++; } - + /* 3. variáció - Coda :-) */ - + for ($i = 1; $i <= 10; print $i, $i++); ]]> </programlisting> @@ -463,66 +454,67 @@ </para> <simpara> Természetesen "a téma" a legbarátságosabb (vagy - esetleg a 3. variáció), de majd meg fogod látni, hogy sok - helyen hasznos dolog, hogy üres kifejezés is írható - <literal>for</literal> ciklusba... + esetleg a 3. variáció). Sok helyen hasznos azonban, hogy üres + kifejezés is írható <literal>for</literal> ciklusba... </simpara> <para> - A PHP megengedi az + A PHP a <literal>for</literal> ciklus esetén is megengedi az <link linkend="control-structures.alternative-syntax">alternatív - szintaxis</link>t is a <literal>for</literal> ciklusban: + szintaxis</link>használatát: <informalexample> <programlisting> +<![CDATA[ for (kif1; kif2; kif3): utasítás; ...; endfor; +]]> </programlisting> </informalexample> </para> <para> - Más nyelvekben van egy <literal>foreach</literal> szerkezet, - hogy bejárjanak egy tömböt, vagy egy hash-t. A PHP 3-ban nincs - ilyen, de a PHP 4-ben implementálták (lásd: <link + Más nyelvekben létezik az ún. <literal>foreach</literal> szerkezet tömbök vagy hash-ek + bejárására. A PHP 3-ban nincs ilyen, de a PHP 4-ben implementálták (lásd: <link linkend="control-structures.foreach">foreach</link>). PHP 3-ban - a <link linkend="control-structures.while">while</link> szerkezetet + a <link linkend="control-structures.while">while</link>, a <function>list</function> és az <function>each</function> - függvényeket kombinálva használhatod erre a célra. - Nézd meg e függvényeknek a dokumentációját, ha szeretnél példákat - is látni. + szerkezeteket használhatod erre a célra. Nézd meg ezeknek a dokumentációját + alkalmazási példákért. </para> </sect1> <sect1 id="control-structures.foreach"> <title><literal>foreach</literal></title> <para> - A PHP 4-ben (nem a PHP 3-ban!) a perlhez és más nyelvekhez - hasonlóan rendelkezésre áll egy <literal>foreach</literal> - szerkezet is. Ez egy jól használható eszközt ad a tömbökön - végzett iterációkhoz. Két szintaxis létezik, a második egy - apró, de hasznos plusz szolgáltatást nyújt az elsõhöz + A PHP 4-ben (nem a PHP 3-ban!) a Perlhez és más nyelvekhez + hasonlóan létezik az ún. <literal>foreach</literal> + szerkezet is. Ez jól használható eszközt ad a tömbökön + végzett iterációkhoz. Két szintaxisa létezik, a második egy + apró, de hasznos kiegészítéssel nyújt többet az elsõhöz képest. <informalexample> <programlisting> +<![CDATA[ foreach(tömb_kifejezés as $ertek) utasítás foreach(tömb_kifejezés as $kulcs => $ertek) utasítás +]]> </programlisting> </informalexample> </para> <simpara> Az elsõ forma végigmegy a <literal>tömb_kifejezés</literal> - által adott tömbön. Minden alkalommal az aktuális + szolgáltatta tömbön. Minden alkalommal az aktuális elem értéke a <literal>$ertek</literal> változóba - kerül, és a belsõ tömb mutató növelésre kerül. (Tehát - a következõ alkalommal a soron következõ elemet fogod megkapni). + kerül, és a belsõ tömb mutató növelésre kerül. (A következõ alkalommal + tehát a soron következõ elemet fogja venni). </simpara> <simpara> A második forma ugyanezt végzi el, de az aktuális elem - kulcsa a <literal>$key</literal> változóba kerül. + kulcsa a <literal>$kulcs</literal> változóba kerül. </simpara> <para> <note> <para> Amikor a <literal>foreach</literal> indul, a belsõ tömb mutató az elsõ elemre áll. Ez azt jelenti, hogy nem kell - meghívnod a <function>reset</function> függvényt egy + meghívni a <function>reset</function> függvényt egy <literal>foreach</literal> ciklus elõtt. </para> </note> @@ -545,7 +537,7 @@ </para> </note> <para> - Talán már tudod, hogy az alábbiak azonosak: + Talán már tudod, hogy az alábbi példák egyenértékûek: <informalexample> <programlisting role="php"> <![CDATA[ @@ -560,7 +552,7 @@ ]]> </programlisting> </informalexample> - Az alábbiak is megegyezõ eredménnyel szolgálnak: + Az alábbiak is azonos eredményt szolgáltatnak: <informalexample> <programlisting role="php"> <![CDATA[ @@ -633,19 +625,18 @@ </informalexample> </para> </sect1> - + <sect1 id="control-structures.break"> <title><literal>break</literal></title> <simpara> - A <literal>break</literal> azonnal kilép aktuális + A <literal>break</literal> azonnal kilép az aktuális <literal>for</literal>, <literal>foreach</literal>, - <literal>while</literal>, <literal>do..while</literal> vagy - <literal>switch</literal> ciklusból. + <literal>while</literal>, <literal>do..while</literal> ciklusból vagy + <literal>switch</literal> szerkezetbõl. </simpara> <simpara> - A <literal>break</literal> elfogad egy opcionális szám - paramétert, ami megadja, hogy hány struktúrából kell - egyszerre 'kiugrani'. + A <literal>break</literal> elfogad egy elhagyható szám paramétert, + amely megadja, hogy hány egymásba ágyazott struktúrából kell egyszerre 'kiugrani'. </simpara> <para> <informalexample> @@ -659,7 +650,7 @@ echo "$ertek<br>\n"; } -/* Az opcionális paraméter használata */ +/* Az elhagyható paraméter használata */ $i = 0; while (++$i) { @@ -679,18 +670,18 @@ </informalexample> </para> </sect1> - + <sect1 id="control-structures.continue"> <title><literal>continue</literal></title> <simpara> - A <literal>continue</literal>-t ciklus belsejében használjuk, + A <literal>continue</literal> ciklusok belsejében használható arra, hogy átugorjuk az aktuális iteráció hátralevõ részét, - és folytassuk a végrehajtást a következõ iterációval. + és a végrehajtást a következõ iterációval folytassuk. </simpara> <simpara> - A <literal>continue</literal> elfogad egy opcionális szám - paramétert, ami megadja, hogy hány struktúrának kell - a hátralévõ részét kihagyni. + A <literal>continue</literal> elfogad egy elhagyható szám + paramétert, amely megadja, hogy hány egymásba ágyazott struktúrának + a hátralévõ részét kell átugrani. </simpara> <para> <informalexample> @@ -721,19 +712,19 @@ </informalexample> </para> </sect1> - + <sect1 id="control-structures.switch"> <title><literal>switch</literal></title> <simpara> A <literal>switch</literal> kifejezés hasonló egy sereg IF kifejezéshez, ahol a kifejezésekben ugyanaz szerepel. - [Pont olyan, mint a C-beli, C-s gyakorlattal rendelkezõknek - Tovább gomb]. Sokszor fordul elõ, hogy ugyanazt a változót - (vagy kifejezést) szeretnéd összehasonlítani több különbözõ + [Pont olyan, mint a C-ben, C-s gyakorlattal rendelkezõknek + Tovább gomb]. Gyakori, hogy ugyanazt a változót + (vagy kifejezést) kell összehasonlítani több különbözõ értékkel, és más-más kódot végrehajtani a változó - (kifejezés) értékétõl függõen. Pontosan ez az, amire a - <literal>switch</literal> való. - </simpara> + (kifejezés) értékétõl függõen. Pontosan erre való a + <literal>switch</literal>. + </simpara> <para> Az alábbi két példa két különbözõ módon írja ki ugyanazt, az egyik egy sor <literal>if</literal> kifejezést használ, @@ -750,7 +741,7 @@ if ($i == 2) { print "i most 2"; } - + switch ($i) { case 0: print "i most 0"; @@ -767,18 +758,18 @@ </informalexample> </para> <para> - A hibák elkerülése végett fontos megérteni, hogy hogyan hajtódik - végre a <literal>switch</literal> szerkezet. A - <literal>switch</literal> sorról-sorra hajtódik végre (vagyis - utasításról utasításra). Nem hajtódik végre semmilyen utasítás, + A hibák elkerülése végett fontos megérteni, hogy hogyan kerül végrehajtásra + a <literal>switch</literal> szerkezet. A + <literal>switch</literal> vagyis utasításról utasításra hajtódik végre. + Nem hajtódik végre semmilyen utasítás, csak akkor, ha egy olyan <literal>case</literal> kifejezést talál a PHP, amely egyezik a <literal>switch</literal> kifejezés értékével. - A PHP addig folytatja az utasítások végrehajtását, amíg el + Ezután a PHP addig folytatja az utasítások végrehajtását, amíg el nem éri a <literal>switch</literal> blokk végét, vagy nem - találkozik egy <literal>break</literal> utasítással. FONTOS!!! - Ha nem írsz <literal>break</literal>-et a case kifejezés végére, - a PHP folytatni fogja a végrehajtást akkor is, ha újabb case - jön! Például: + találkozik egy <literal>break</literal> utasítással. FONTOS! + Ha nem nincs <literal>break</literal> egy <literal>case</literal>-hez + tartozó utasítás(sorozat) végén, akkor a PHP végrehajtja a soron következõ + <literal>case</literal>-hez tartozó utasításokat is! Például: <informalexample> <programlisting role="php"> <![CDATA[ @@ -795,16 +786,16 @@ </informalexample> </para> <simpara> - Itt, ha $i 0, a PHP az összes kiíró utasítást végrehajtja! - Ha $i 1, a PHP az utolsó két sort hajtja végre, és csak ha - $i értéke 2, akkor kapod a 'kívánt' eredményt (csak i most - 2 íródik ki). Tehát nagyon fontos nem elfelejteni a - <literal>break</literal> utasítást (bár lehet, hogy - szándékosan elhagyod bizonyos körülmények között). + Itt, ha $i értéke 0, akkor a PHP az összes kiíró utasítást végrehajtja! + Ha $i értéke 1, akkor a PHP az utolsó két print-et hajtja végre, és csak + ha $i értéke 2, akkor kapod a 'kívánt' eredményt (csak az 'i most + 2' íródik ki). Tehát nagyon fontos nem elfelejteni a + <literal>break</literal> utasítást (bár bizonyos körülmények között lehet, + hogy pont ennek elhagyása a szándékos). </simpara> <simpara> A <literal>switch</literal> kifejezésben a feltétel csak - egyszer értékelõdik ki és az eredmény hasonlítódik össze a + egyszer értékelõdik ki és a kapott eredmény lesz összehasonlítva a <literal>case</literal> kifejezések mindegyikével. Ha <literal>elseif</literal> kifejezéseket használsz, a kifejezések újra és újra kiértékelõdnek. [és újra és @@ -814,7 +805,7 @@ gyorsabb. </simpara> <para> - Egy eset utasításlistája üres is lehet, így a vezérlés + Egy eset (case) utasításlistája üres is lehet, így a vezérlés a következõ case-címkére adódik. <informalexample> <programlisting role="php"> @@ -860,8 +851,8 @@ <para> A <literal>case</literal> kifejezés tetszõleges kifejezés, aminek egyszerû a típusa, vagyis egész vagy lebegõpontos - szám, vagy string. Tömbök és objektumok itt nem használhatók, - hacsak nem egy-egy elemük ill. változójuk egyszerû típusként. + szám, vagy string. Tömbök és objektumok itt nem használhatók, + csakis egy-egy elemük ill. változójuk egyszerû típusként. </para> <para> Az alternatív szintaxis mûködik a switch-ekkel is. Bõvebb @@ -899,7 +890,9 @@ vezérlési szerkezetekéhez: <informalexample> <programlisting> +<![CDATA[ declare (direktíva) utasítás +]]> </programlisting> </informalexample> </para> @@ -919,8 +912,8 @@ </para> <sect2 id="control-structures.declare.ticks"> <title>Tick-ek</title> - <para>Egy tick egy olyan esemény, ami minden - <replaceable>N</replaceable> alacsony szintû utasítás + <para>A tick egy olyan esemény, amely minden + <replaceable>N</replaceable> db alacsony szintû utasítás végrehajtásakor bekövetkezik a <literal>declare</literal> blokkban. Az <replaceable>N</replaceable> értéket a <literal>ticks=<replaceable>N</replaceable></literal> @@ -980,7 +973,7 @@ méri, rögzítve minden második alacsonyszintû utasítás végrehajátásának idõpontját. Ez az információ alkalmas lehet arra, hogy megtaláld a lassan futó részeket a - kódodban. Ezt a hatást másképp is elérhetted volna, + kódodban. Ezt a hatást másképp is el lehet érni, de tick-eket használva sokkal kényelmesebb és könnyebben megvalósítható megoldást kapsz. </para> @@ -995,40 +988,39 @@ </simpara> </sect2> </sect1> - + <sect1 id="function.require"> <title><function>require</function></title> <simpara> - A <function>require</function> függvény behelyettesítõdik - a megadott fájllal, pont úgy, mint a C preprocesszor + A <function>require</function> helyén az a megadott fájl tartalma + helyettesítõdik be pont úgy, mint a C preprocesszor <literal>#include</literal>-ja. </simpara> <simpara> Ha az "URL fopen wrapper"-ek be vannak kapcsolva (ami az - alapbeállítású helyzet), akkor a <function>require</function> - használatakor távoli fájlt is megadhatsz. Lásd + alapértelmezett helyzet), akkor a <function>require</function> + használatakor távoli fájlt is megadható. Lásd a <link linkend="features.remote-files">Távoli fájlok kezelése</link> - címû fejezetet és az <function>fopen</function> függvényt. + címû fejezetet és az <function>fopen</function> függvényt! </simpara> <simpara> - Egy fontos megjegyzés a mûködésre vonatkozólag, hogy ha egy - fájlt berántunk <function>include</function>-al vagy - <function>require</function>-el, akkor kikerülünk a PHP - módból HTML módba a célfájl elején, és visszaáll PHP - módba a fájl végén. Ezért, bármely célfájlban levõ PHP - kódot közre kell fogni egy <link - linkend="language.basic-syntax.phpmode">érvényes - PHP kezdõ- és zárótag-gel</link>. + A mûködésre vonatkozólag fontos megjegyezni, hogy ha egy + fájlt beillesztünk az <function>include</function>-dal vagy + <function>require</function>-ral, akkor a célfájl elején az elemzõ kilép + a PHP módból HTML módba, majd visszaáll PHP módba a fájl végén. + Ennek okán bármely beillesztendõ fájlban levõ PHP kódot közre kell fogni + egy <link linkend="language.basic-syntax.phpmode">érvényes + PHP kezdõ- és zárójelöléssel</link>. </simpara> <simpara> - A <function>require</function> valójában nem is egy - függvény a PHP-ben, hanem egy nyelvi konstrukció. Ez + A <function>require</function> valójában nem is + függvény a PHP-ben, hanem nyelvi konstrukció. Ez azt jelenti, hogy más szabályok vonatkoznak rá, mint a függvényekre. Például a <function>require</function>-re - nem vonatkoznak a körbezáró struktúrák korlátozásai. - Másfelõl, nincs visszatérési értéke; ha megpróbálod - kiolvasni a <function>require</function> hívás visszatérési - értékét, a hívás értelmezési hibát (parse error) eredményez. + nem vonatkoznak a körbezáró struktúrák korlátozásai és + nincs visszatérési értéke. Ha megpróbálod + olvasni a <function>require</function> hívás visszatérési + értékét, a hívás értelmezési hibát (parse error) eredményez. </simpara> <simpara> Az <function>include</function>-tól eltérõn a @@ -1039,12 +1031,12 @@ az <function>include</function>-ot. A feltételes kifejezés nincs hatással a <function>require</function>-ra. Ennek ellenére, ha a sor, amelyen a <function>require</function> - áll nem hajtódik végre, a célfájlban lévõ kód nem is + áll nem hajtódik végre, a célfájlban lévõ kód nem is fog lefutni. </simpara> <simpara> Hasonlóan, a ciklusok sem változtatják meg a - <function>require</function> viselkedését. Bár a célfájl + <function>require</function> viselkedését. Bár a célfájl kódja a ciklusmagban van, a <function>require</function> végrehajtása csak egyszer történik meg. </simpara> @@ -1056,26 +1048,28 @@ A require-t konstans fájlnevekkel használd: <informalexample> <programlisting role="php"> -require ('header.inc'); +<![CDATA[ +require ('header.php'); +]]> </programlisting> </informalexample> </para> <simpara> - Ha egy fájlt <function>require</function>-el töltesz be, - a kód, amit tartalmaz azt az érvényességi kört örökli, - ami a <function>require</function> hívás sorára vonatkozott. - Bármilyen változó, ami azon a soron elérhetõ, rendelkezésre + Ha egy fájlt <function>require</function>-rel töltesz be, akkor + az általa tartalmazott kód azt az érvényességi kört örökli, + amely a <function>require</function> hívás sorára vonatkozott. + Bármilyen változó, amely azon a soron elérhetõ, rendelkezésre áll a hívott fájlban. Ha a <function>require</function> egy függvényben található a hívó fájlban, akkor a hívott - fájl minden kódja úgy fog viselkedni, mintha a függvényen + fájl teljes kódja úgy fog viselkedni, mintha a függvényen belül írtad volna. </simpara> <para> - Ha a <function>require</function>-el hívott fájl HTTP-n + Ha a <function>require</function>-rel hívott fájl HTTP-n keresztül érkezik az "fopen wrapper"-ek használatával, és a célszerver feldolgozza a fájlt, mint PHP kódot, átadhatsz változókat a hívott fájlnak HTTP GET lekérési - formában. Ez nem ugyanaz, mintha a <function>require</function>-el + formában. Ez nem ugyanaz, mintha a <function>require</function>-rel hívott fájl örökölné a helyi változókat, mivel a szkript valójában a távoli szerveren fut le, és a futási eredmény kerül beépítésre a helyi szkriptbe. @@ -1092,10 +1086,10 @@ /* Nem mûködik: egy 'file.php?elsovaltozo=1&masodikvaltozo=2' * nevû fájlt keres a helyi rendszeren */ -require ("file.php?elsovaltozo=1&masodikvaltozo=2"); +require ("file.php?elsovaltozo=1&masodikvaltozo=2"); /* Mûködik */ -require ("http://szerver/file.php?elsovaltozo=1&masodikvaltozo=2"); +require ("http://szerver/file.php?elsovaltozo=1&masodikvaltozo=2"); $elsovaltozo = 1; $masodikvaltozo = 2; @@ -1110,7 +1104,7 @@ helyezzünk el a <function>require</function>-rel behívott fájlba, ha a return a behívott fájl globális részében van. Nem szerepelhet blokkban sem, tehát nem lehet kapcsos zárójelen belül ({}). - A PHP 4-ben ezt a lehetõséget megszüntették. Ha szeretnél valami + A PHP 4-ben ezt a lehetõséget megszüntették. Ha szeretnél valami ilyesfélét, akkor nézd meg az <function>include</function>-ot. </simpara> <simpara> @@ -1119,7 +1113,7 @@ és <function>virtual</function>. </simpara> </sect1> - + <sect1 id="function.include"> <title><function>include</function></title> <simpara> @@ -1134,24 +1128,23 @@ címû fejezetet és az <function>fopen</function> függvényt. </simpara> <simpara> - Egy fontos megjegyzés a mûködésre vonatkozólag, hogy ha egy - fájlt berántunk <function>include</function>-al vagy - <function>require</function>-el, akkor kikerülünk a PHP - módból HTML módba a célfájl elején, és visszaáll PHP - módba a fájl végén. Ezért, bármely célfájlban levõ PHP - kódot közre kell fogni egy <link - linkend="language.basic-syntax.phpmode">érvényes - PHP kezdõ- és zárótag-gel</link>. + A mûködésre vonatkozólag fontos megjegyezni, hogy ha egy + fájlt beillesztünk az <function>include</function>-dal vagy + <function>require</function>-ral, akkor a célfájl elején az elemzõ kilép + a PHP módból HTML módba, majd visszaáll PHP módba a fájl végén. + Ennek okán bármely beillesztendõ fájlban levõ PHP kódot közre kell fogni + egy <link linkend="language.basic-syntax.phpmode">érvényes + PHP kezdõ- és zárójelöléssel</link>. </simpara> + <para> Ez történik valahányszor az <function>include</function>-hoz - ér a program, tehát használhatod az - <function>include</function>-ot egy ciklus belsejében, - hogy különbözõ fájlokat behúzzál. + ér a program, tehát az <function>include</function>-ot kell használni + egy ciklus belsejében különbözõ fájlok beillesztésére. <informalexample> <programlisting role="php"> <![CDATA[ -$fileok = array ('elso.inc', 'masodik.inc', 'harmadik.inc'); +$fileok = array ('elso.php', 'masodik.php', 'harmadik.php'); for ($i = 0; $i < count($fileok); $i++) { include $files[$i]; } @@ -1162,18 +1155,18 @@ <para> Az <function>include</function> abban különbözik a <function>require</function>-tõl, hogy míg az - <function>include</function> minden alkalommal + <function>include</function> minden alkalommal kiértékelõdik, ahányszor elõfordul (és csak akkor, ha éppen oda kerül a vezérlés), addig a <function>require</function> az elsõ alkalommal - helyettesíti a fájlt, akár kiértékelõdik + helyettesíti a fájlt, akár kiértékelõdik a tartalma, akár nem (például egy olyan <link linkend="control-structures.if">if</link> kifejezésben, amely mindig hamis). </para> <para> - Mivel az <function>include</function> egy különleges - nyelvi elem, védened kell kapcsos zárójelekkel, + Mivel az <function>include</function> különleges + nyelvi elem, kapcsos zárójelekkel kell közrefogni, ha egy feltételes utasításon belül szerepel. <informalexample> <programlisting role="php"> @@ -1185,7 +1178,7 @@ else include($other); -/* Ez HELYES */ +/* Ez a HELYES */ if ($feltetel) { include($file); @@ -1200,24 +1193,23 @@ A PHP 3-ban, és a PHP 4-ben is lehetõség van arra, hogy <literal>return</literal> utasítást helyezz el egy <function>include</function>-olt fájlban annak érdekében, - hogy a kiértékelés befejezõdjön, és visszaadjon egy - értéket a hívó szkriptnek. Bár vannak apróbb - különbségek. Elõször is a PHP 3 nem engedi meg, hogy a - <literal>return</literal> egy blokkban legyen, kivéve - ha az egy függvényblokk, ami ugye csak abból a függvénybõl - fog visszatérni, és nem az egész fájlból. A PHP 4-ben - ez a megszorítás nincs. Vagyis a PHP 4 megenged - visszatérési értékeket <function>include</function>-olt + hogy a kiértékelés ott befejezõdjön, és visszaadjon egy + értéket a hívó szkriptnek. Bár vannak apróbb + különbségek. Elõször is a PHP 3 csak függvényblokkban engedélyezi a + <literal>return</literal> elõfordulását, amely csak az adott + függvénybõl - nem pedig az egész fájlból - történõ visszatérést + jelöli. A PHP 4-ben ez a megszorítás nincs, vagyis a PHP 4 + megengedi a visszatérési értékeket <function>include</function>-olt fájlokból. A visszatérési értéket ugyanúgy használhatod, - mint egy közönséges függvénynél. Ez a PHP 3-ban + mint egy közönséges függvénynél. Ez a PHP 3-ban értelmezési hibát (parse error) okoz. </simpara> <example> <title>Az <function>include</function> PHP 3-ban és PHP 4-ben</title> <para> Tegyük fel, hogy a következõ fájl (melynek neve: - <filename>test.inc</filename>) abban a könyvtárban van, - mint a fõfájl: + <filename>test.php</filename>) abban a könyvtárban van, + mint a fõ fájl: <programlisting role="php"> <![CDATA[ <?php @@ -1231,8 +1223,8 @@ </programlisting> </para> <para> - És legyen a fõfájl (<filename>main.php</filename>) - tartalma az alábbi: + És legyen a fõ fájl (<filename>main.php</filename>) + tartalma az alábbi: <programlisting role="php"> <![CDATA[ <?php @@ -1282,7 +1274,7 @@ A fenti hiba annak a következménye, hogy a <literal>return</literal> egy kapcsos zárójelezett részben van, amely nem függvényen belül található a - <filename>test.inc</filename> fájlban. Ha a return-t + <filename>test.php</filename> fájlban. Ha a return-t kivesszük a blokkból, a kimenet ilyen lesz: <screen> Return elõtt @@ -1290,26 +1282,26 @@ </screen> </para> <para> - A nemkívánatos '27' azért van ott, mert a PHP 3 nem támogatja - az ilyen fájlokból való visszatérési értékeket. + A nem kívánt '27' azért van ott, mert a PHP 3 nem támogatja + az ilyen, fájlokból való visszatérési értékeket. </para> </example> <simpara> - Ha egy fájlt <function>include</function>-al töltesz be, - a kód, amit tartalmaz azt az érvényességi kört örökli, - ami az <function>include</function> hívás sorára vonatkozott. + Ha egy fájlt <function>include</function>-dal töltesz be, + az általa tartalmazott a kód azt az érvényességi kört örökli, + amely az <function>include</function> hívás sorára vonatkozott. Bármilyen változó, ami azon a soron elérhetõ, rendelkezésre áll a hívott fájlban. Ha az <function>include</function> egy függvényben található a hívó fájlban, akkor a hívott - fájl minden kódja úgy fog viselkedni, mintha a függvényen - belül írtad volna. + fájl teljes kódja úgy fog viselkedni, mintha az a függvényen + belül lenne írva. </simpara> <para> - Ha az <function>include</function>-al hívott fájl HTTP-n + Ha az <function>include</function>-dal hívott fájl HTTP-n keresztül érkezik az "fopen wrapper"-ek használatával, és - a célszerver feldolgozza a fájlt, mint PHP kódot, + a célszerver PHP kódként feldolgozza a fájlt, akkor átadhatsz változókat a hívott fájlnak HTTP GET lekérési - formában. Ez nem ugyanaz, mintha a <function>include</function>-al + formában. Ez nem ugyanaz, mintha a <function>include</function>-dal hívott fájl örökölné a helyi változókat, mivel a szkript valójában a távoli szerveren fut le, és a futási eredmény kerül beépítésre a helyi szkriptbe. @@ -1326,10 +1318,10 @@ /* Nem mûködik: egy 'file.php?elsovaltozo=1&masodikvaltozo=2' * nevû fájlt keres a helyi rendszeren */ -include ("file.php?elsovaltozo=1&masodikvaltozo=2"); +include ("file.php?elsovaltozo=1&masodikvaltozo=2"); /* Mûködik */ -include ("http://szerver/file.php?elsovaltozo=1&masodikvaltozo=2"); +include ("http://szerver/file.php?elsovaltozo=1&masodikvaltozo=2"); $elsovaltozo = 1; $masodikvaltozo = 2; @@ -1341,16 +1333,16 @@ </para> <simpara> Lásd még: <function>require</function>, <function>require_once</function>, - <function>include_once</function>, <function>readfile</function>, - és <function>virtual</function>. + <function>include_once</function>, <function>readfile</function> + és <function>virtual</function>! </simpara> </sect1> - + <sect1 id="function.require-once"> <title><function>require_once</function></title> <para> - A <function>require_once</function> behelyettesítõdik - a megadott fájllal, pont úgy, mint a C preprocesszor + A <function>require_once</function> helyén behelyettesítésre kerül + a megadott fájl pont úgy, mint a C preprocesszor <literal>#include</literal>-ja, és ebben az értelemben hasonló a <function>require</function>-höz. A fõ különbség az, hogy a <function>require_once</function> gondoskodik @@ -1359,10 +1351,9 @@ eredõ hibáktól. </para> <para> - Például elkészíted a következõ két fájlt: - <literal>ezskozok.inc</literal> és <literal>izelib.inc</literal> + Példában legyen a következõ két fájl: <literal>eszkozok.php</literal> és <literal>izelib.php</literal> <example> - <title>eszkozok.inc</title> + <title>eszkozok.php</title> <programlisting role="php"> <![CDATA[ <?php @@ -1377,11 +1368,11 @@ </programlisting> </example> <example> - <title>izelib.inc</title> + <title>izelib.php</title> <programlisting role="php"> <![CDATA[ <?php -require ("eszkozok.inc"); +require ("eszkozok.php"); function valtozoMegjelenites($valtozo) { if (PHPVERSION == 4) { @@ -1396,18 +1387,19 @@ ]]> </programlisting> </example> - Aztán írsz egy szkriptet <literal>require_hiba_bemutatasa.php</literal> névvel: + Valamint <literal>require_hiba_bemutatasa.php</literal> nevû szkript: <example> <title>require_hiba_bemutatasa.php</title> <programlisting role="php"> <![CDATA[ <?php -require("izelib.inc"); +require("izelib.php"); /* A következõ sor hibát generál */ -require("eszkozok.inc"); +require("eszkozok.php"); + $ize = array("1",array("komplex","tömb")); -echo "Ez betölti az eszkozok.inc fájlt, amit már\n"; -echo "egyszer az izelib.inc is betöltött.\n"; +echo "Ez betölti az eszkozok.php fájlt, amit már\n"; +echo "egyszer az izelib.php is betöltött.\n"; echo "joTea futtatása: ".joTea()."\n"; echo "ize kiírása: \n"; valtozoMegjelenites($ize); @@ -1415,72 +1407,79 @@ ]]> </programlisting> </example> - Amikor megpróbálod lefuttatni ez utóbbi programot, - az eredmény (PHP 4.01pl2-t használva): + Ez utóbbi program eredménye (PHP 4.01pl2-t használva): <informalexample> <programlisting> +<![CDATA[ A GLOBÁLIS VÁLTOZÓK JÓK A GLOBÁLIS VÁLTOZÓK JÓK -Fatal error: Cannot redeclare joTea() in eszkozok.inc on line 5 +Fatal error: Cannot redeclare joTea() in eszkozok.php on line 5 +]]> </programlisting> </informalexample> - Az <literal>izelib.inc</literal> és - <literal>require_hiba_bemutatasa</literal> fájlok módosításával, - <function>require_once</function> használatával a probléma + Az <literal>izelib.php</literal> és + <literal>require_hiba_bemutatasa</literal> fájlok módosításával - a + <function>require_once</function> használatával - a probléma megoldódik. Átnevezve <literal>require_hiba_elkerulese.php</literal>-re az elõzõt: <example> - <title>iezlib.inc (javítás)</title> + <title>iezlib.php (javítás)</title> <programlisting role="php"> +<![CDATA[ ... -require_once("eszkozok.inc"); +require_once("eszkozok.php"); function valtozoMegjelenites($valtozo) { ... +]]> </programlisting> </example> <example> <title>require_hiba_elkerulese.php</title> <programlisting role="php"> +<![CDATA[ ... -require_once("izelib.inc"); -require_once("eszkozok.inc"); +require_once("izelib.php"); +require_once("eszkozok.php"); $ize = array("1",array("komplex","tömb")); ... +]]> </programlisting> </example> Ez utóbbit futtatva a kimenet (PHP 4.0.1pl2-t használva): <informalexample> <programlisting> +<![CDATA[ A GLOBÁLIS VÁLTOZÓK JÓK -Ez betölti az eszkozok.inc fájlt, amit már -egyszer az izelib.inc is betöltött. +Ez betölti az eszkozok.php fájlt, amit már +egyszer az izelib.php is betöltött. joTea futtatása: Az Oolong tea jó ízû! ize kiírása: Array ( - [0] => 1 - [1] => Array + [0] => 1 + [1] => Array ( - [0] => komplex - [1] => tömb + [0] => komplex + [1] => tömb ) ) +]]> </programlisting> </informalexample> </para> <para> - Vedd észre, hogy a C preprocesszor + Vedd észre, hogy a C preprocesszor <literal>#include</literal>-jához hasonlóan ez is "fordítás idõben" - végzi a beillesztéseket, azaz akkor, amikor a szkriptet feldolgozza. - Ezért nem használható a szript olyan részeire, amik futás közben + végzi a beillesztéseket, azaz a szkript beolvasása során és futtatása elõtt. + Ezért nem használható a szkript olyan részeire, amelyek futás közben dinamikusan kerülnek be. Erre a célra az <function>include_once</function> vagy az <function>include</function> használható. </para> <para> - További példákhoz az <function>require_once</function> és + További példákhoz az <function>require_once</function> és <function>include_once</function> használatához nézd meg a PEAR kódot, ami a legfrissebb PHP disztribúciókban megtalálható. </para> @@ -1492,15 +1491,15 @@ és <function>virtual</function>. </para> </sect1> - + <sect1 id="function.include-once"> <title><function>include_once</function></title> <para> Az <function>include_once</function> beilleszt és feldolgoz fájlokat a program futása közben. Ez hasonló az <function>include</function> mûködéséhez, azzal a fontos különbséggel, - hogy ha a kód már egyszer beillesztésre került, akkor a PHP - nem próbálja meg ismét betölteni. + hogy ha a már egyszer beillesztésre került kódot a PHP nem próbálja meg + ismét betölteni. </para> <para> Mint ahogy a <function>require_once</function> leírásában olvasható, @@ -1511,7 +1510,7 @@ újradefiniálását, változók értékének átállítását, stb. </para> <para> - További példákhoz az <function>require_once</function> és + További példákhoz az <function>require_once</function> és <function>include_once</function> használatához nézd meg a PEAR kódot, ami a legfrissebb PHP disztribúciókban megtalálható. </para> @@ -1523,13 +1522,13 @@ Lásd még: <function>require</function>, <function>include</function>, <function>require_once</function>, <function>get_required_files</function>, - <function>get_included_files</function>, <function>readfile</function>, - és <function>virtual</function>. + <function>get_included_files</function>, <function>readfile</function> + és <function>virtual</function>! </para> </sect1> - + </chapter> - + <!-- Keep this comment at the end of the file Local variables: mode: sgml Index: phpdoc/hu/language/references.xml diff -u phpdoc/hu/language/references.xml:1.11 phpdoc/hu/language/references.xml:1.12 --- phpdoc/hu/language/references.xml:1.11 Thu Dec 27 19:38:16 2001 +++ phpdoc/hu/language/references.xml Sat Dec 29 18:57:12 2001 @@ -24,8 +24,8 @@ <title>Mit lehet referenciákkal tenni</title> <para> A PHP referenciák lehetõséget adnak arra, hogy egy értékhez - két nevet redelj. Ez azt jelenti, hogy amikor a következõt - teszed: + két nevet lehessen rendelni. Ez azt jelenti, + hogy a következõ programban: <informalexample> <programlisting role="php"> <![CDATA[ @@ -47,7 +47,7 @@ </note> </para> <para> - Ugyanez a forma használható az olyan függvényeknél, amik + Ugyanez a forma használható az olyan függvényeknél, amelyek referenciát adnak vissza, vagy a <literal>new</literal> operátor használatakor (a PHP 4.0.4 és késõbbi verziókban): <informalexample> @@ -66,16 +66,15 @@ objektumon belüli használatával ugyanazon az objektumpéldányon dolgozol. Ha az értékadás során az <literal>&</literal> -t elhagyod, akkor az objektumról másolat készül és a <literal>$this</literal> már ezen a - másolaton fog dolgozni. Ez van, amikor nem kívánatos, mivel általában + másolaton fog dolgozni. Van, amikor ez nem kívánatos, mivel általában egy példányon szeretnénk dolgozni a jobb memóriahasználat és teljesítmény érdekében. </para> </note> <para> - A cím szerinti paraméterátadás a másik dolog, amit - referenciákkal el lehet érni. Ezzel a hívott függvény - egy lokális változója és a hívó környezet egy változója - ugyanazt az értéket jelentik. Például: + A a referenciákat paraméterátadáskor is lehet használni. + Ebben az esetben a meghívott függvény egy lokális változója és a hívó környezet + egy változója ugyanazt az értéket fogja képviselni. Például: <informalexample> <programlisting role="php"> <![CDATA[ @@ -91,23 +90,22 @@ </informalexample> Ez a kód az <varname>$a</varname> változó értékét 6-ra állítja. Ez azért történik meg, mivel az <varname>ize</varname> függvényben - a <varname>$valtozo</varname> egy referencia az - <varname>$a</varname> változó értékére. - Lásd még a részletes leírást a <link - linkend="language.references.pass">cím szerinti átadásról</link>. + a <varname>$valtozo</varname> egy referencia a <varname>$a</varname> változó + értékére. A részletes leírást a <link + linkend="language.references.pass">referenciakénti paraméterátadás</link> + c. fejezetben olvashatod. </para> <simpara> - A harmadik dolog, amit referenciákkal tehetsz, az a <link - linkend="language.references.return">cím szerinti visszetérés</link>. + A referenciák harmadik felhasználási módja a <link + linkend="language.references.return">refencia visszatérési-érték</link>. </simpara> </sect1> <sect1 id="language.references.arent"> <title>Mit nem lehet referenciákkal tenni</title> <para> - Mint korábban írtuk, a referenciák nem mutatók. Ez azt - jelenti, hogy a következõ konstrukció nem azt teszi, - amit elvárnál: + Mint korábban írtuk, a referenciák nem mutatók. + A következõ konstrukció ezért nem a vártnak megfelelõen viselkedik: <informalexample> <programlisting role="php"> <![CDATA[ @@ -124,22 +122,21 @@ A <varname>foo</varname> függvényben a <varname>$valtozo</varname> változó a <varname>$valami</varname> értékéhez lesz kötve, de utána ezt megváltoztatjuk a <varname>$GLOBALS["valami"]</varname> - értékére. Nincs lehetõség <varname>$valami</varname> kötésére - a hívó környezetben valami máshoz a referenciák segítségével, - mivel <varname>$valami</varname> nem áll rendelkezésre az - <varname>ize</varname> függvényben (ott a <varname>$valtozo</varname> - reprezentálja az értékét, de a <varname>$valtozo</varname> csak - változó tartalommal bír és nem név-érték kötéssel a hívó szimbólum - táblájában). + értékére. Nincs lehetõség a referenciák segítségével a <varname>$valami</varname> + más értékhez kötésére a hívó környezetben, mivel a <varname>$valami</varname> + nem áll rendelkezésre az <varname>ize</varname> függvényben. + Ott a <varname>$valtozo</varname> reprezentálja az értékét, amely csak + változó tartalommal bír és nem név-érték kötéssel a hívó + szimbólumtáblájában. </simpara> </sect1> <sect1 id="language.references.pass"> - <title>Cím szerinti paraméterátadás</title> + <title>Referenciakénti paraméterátadás</title> <para> - Át tudsz adni függvényeknek változókat cím szerinti - formában is, így a függvény tudja módosítani az értéket. - Ez a következõképpen használatos: + A függvényeknek változókat referenciaként is át lehet adni, + így a függvény tudja módosítani a hívó környezetben definiált értéket. + Ez a következõképpen oldható meg: <informalexample> <programlisting role="php"> <![CDATA[ @@ -154,12 +151,12 @@ ]]> </programlisting> </informalexample> - Figyeld meg, hogy nincs referencia jelzés híváskor, csak + Figyeld meg, hogy nincs referencia jelzés a függvényhíváskor, csak a függvény definíciójában. Ez önmagában elég a megfelelõ mûködéshez. </para> <para> - A következõket adhatod át cím szerint: + A következõk szerepelhetnek referenciakénti paraméterátadásban: <itemizedlist> <listitem> <simpara> @@ -186,21 +183,20 @@ ]]> </programlisting> </informalexample> - Lásd még a <link linkend="language.references.return">cím - szerinti visszetérés</link> leírását. + Lásd még a <link linkend="language.references.return">refencia visszatérési-érték</link> leírását. </para> </listitem> </itemizedlist> </para> <para> - Minden más kifejezést kerülni kell cím szerinti - paraméterátadáskor, mivel az eredmények nem definiáltak. - Például a következõ példája a cím szerinti paraméterátadásnak - hibás: + Minden más kifejezést kerülni kell referencia szerinti + paraméterátadáskor, mivel az eredmény határozatlan lesz. + A következõ példákban a referencia szerinti paraméterátadás + hibának minõsül: <informalexample> <programlisting role="php"> <![CDATA[ -function valami() // Figyeld meg a hiányzó & jelet +function valami() // Figyeld meg, nincs & jel! { $a = 5; return $a; @@ -217,11 +213,11 @@ </sect1> <sect1 id="language.references.return"> - <title>Cím szerinti visszatérés</title> + <title>Refencia visszatérési-érték</title> <para> - A cím szerinti visszatérés akkor hasznos, ha meg kell találnod - egy változót amire referenciát szeretnél készíteni. Ha - referenciával szeretnél visszatérni, használd az alábbi formát: + A refencia visszatérési-érték pl. olyan változók megtalálásakor lehet + hasznos, amelyekrõl referenciát kell készíteni. Ha referenciát kell + visszaadni visszatérési értékként, akkor használd az alábbi formát: <informalexample> <programlisting role="php"> <![CDATA[ @@ -238,17 +234,17 @@ </informalexample> Ebben a példában a <varname>valtozo_kereses</varname> egy objektumot keres meg, és a megtalált objektum - egy tulajdonságát állítjuk át - helyesen, a másolatának - egy tulajdonsága helyett, amit a referenciák használata - nélkül tettünk volna - hibásan. + egy tulajdonságát állítjuk át - helyesen. A referenciák használata + nélkül a másolatának egy tulajdonságán tettük volna mindezt - hibásan. </para> <note> <simpara> A paraméter átadással ellentétben, itt a <literal>&</literal> jelet mindkét helyen meg kell - adnod, a cím szerinti visszatérés jelöléséhez. Így nem + adnod a referenciavisszaadás jelöléséhez. Így nem egy másolatot kapsz, és az <varname>$ize</varname> változóra - nézvereferencia hozzárendelés történik, nem érték hozzárendelés. + nézve referencia hozzárendelés történik, nem pedig érték + hozzárendelés (értékmásolás). </simpara> </note> </sect1> @@ -257,7 +253,7 @@ <title>Referenciák megszüntetése</title> <para> Amikor megszüntetsz egy referenciát, csak megszakítod - a változó név és érték közötti kapcsolatot. Ez nem + a változónév és az érték közötti kapcsolatot. Ez nem azt jelenti, hogy a váltózó értékét törlöd. Például: <informalexample> <programlisting role="php"> @@ -281,10 +277,10 @@ <sect1 id="language.references.spot"> <title>A PHP által használt referenciák</title> <simpara> - Sok konstrukció a PHPben referenciák segítségével + Sok konstrukció a PHP-ben referenciák segítségével valósul meg, azért minden fentebb tárgyalt kérdés ezekre az elemekre is igaz. Néhány olyan konstrukciót, - mint a cím szerinti paraméter átadást vagy visszatérést + mint a referencia átadást vagy visszatérést már kifejtettünk, más referenciákat használó konstrukciók: </simpara> @@ -293,8 +289,8 @@ <para> Amikor egy változót a <command>global $valtozo</command> formával globálisként használsz, tulajdonképpen egy referenciát képzel - a megfelelõ globális változóra. Ez azt jelenti, hogy a következõ - kódnak megfelelõ történik: + a megfelelõ globális változóra,azaz a következõ kódnak megfelelõ + történik: <informalexample> <programlisting role="php"> <![CDATA[ Index: phpdoc/hu/language/oop.xml diff -u phpdoc/hu/language/oop.xml:1.8 phpdoc/hu/language/oop.xml:1.9 --- phpdoc/hu/language/oop.xml:1.8 Wed Dec 12 15:51:28 2001 +++ phpdoc/hu/language/oop.xml Sat Dec 29 18:57:12 2001 @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="iso-8859-2"?> -<!-- EN-Revision: 1.27 Maintainer: goba Status: ready --> +<!-- EN-Revision: 1.32 Maintainer: goba Status: ready --> +<!-- CREDITS: pgerzson --> <chapter id="language.oop"> <title>Osztályok, objektumok</title> @@ -69,10 +70,10 @@ </simpara> <simpara> - A PHP fenntartja az összes __ karakterekkel kezdõdõ - metódusnevet, mint speciális neveket. Nem szabad - __ karakterekkel kezdõdõ metódusnevet adni, hacsak nem - a dokumentált funkciókat szeretnéd használni. + A PHP számára lefoglalt az összes __ karakterekkel kezdõdõ + metódusnév, mint speciális név. Nem szabad __ karakterekkel + kezdõdõ metódusnevet adni, hacsak nem a dokumentált funkciókat + szeretnéd használni. </simpara> </caution> @@ -145,8 +146,8 @@ </para> <para> Mind a $kosar, mind a $masik_kosar objektumoknak megvannak - a break() és kivesz() metódusai, és tulajdonságai. Ezek - azonban egymástól független metódusk és tulajdonságok. Az + a berak() és kivesz() metódusai, és tulajdonságai. Ezek + azonban egymástól független metódusok és tulajdonságok. Az objektumokról hasonlóan gondolkozhatsz, mint a könyvtárakról az állományrendszerben. Lehetséges, hogy két különbözõ OLVASSEL.TXT állományod van, ha ezek két különbözõ @@ -185,7 +186,7 @@ osztály saját metódusait és tulajdonságait az objektumpéldány(ok) nevétõl függetlenül, használhatod a $this kvázi-változót, amit 'a sajátom' vagy 'az aktuális objektumpéldány' értelemben - alkalmazhatsz. Ezért a '$this->dolgok[$sorsz] += $db' úgy + alkalmazhatsz. Ezért a '$this->dolgok[$sorsz] += $db' úgy olvasható, hogy 'adj $db darab $sorsz sorszámú terméket a saját dolgok tömbömhöz', vagy 'adj $db darab $sorsz sorszámú terméket az aktuális objektumpéldány dolgok tömbjéhez'. @@ -196,14 +197,14 @@ <title><literal>extends</literal></title> <para> - Gyakran szeretnél olyan osztályokat kialakítani, amelyek - hasonló tulajdonságokkal és metódusokkal rendelkeznek, - mint egy már meglévõ osztály. Tulajdonképpen jó gyakorlat + Gyakori, hogy szeretnél olyan osztályokat kialakítani, amelyek + egy már meglévõ osztályhoz hasonló tulajdonságokkal és + metódusokkal rendelkeznek. Tulajdonképpen jó gyakorlat egy általános osztályt definiálni, amit minden projektedben használhatsz, és ezt az osztályt alakítani az egyes projektek igényeinek megfelelõen. Ennek a megvalósítása érdekében az osztályok lehetnek más osztályok kiterjesztései. - A kietrejesztett, vagy származtatott osztály minden + A kiterjesztett, vagy származtatott osztály minden tulajdonággal és metódussal rendelkezik, ami a kiindulási osztályban megvolt (ezt nevezzük öröklésnek, bár senki sem hal meg a folyamat során). Amit hozzáadsz a kiindulási @@ -254,7 +255,7 @@ </sect1> <sect1 id="language.oop.constructor"> - <title><literal>Constructors</literal></title> + <title><literal>Konstruktor</literal></title> <caution> <simpara> @@ -263,13 +264,14 @@ </simpara> </caution> <para> - A konstruktorok olyan az osztályok olyan metódusai, amelyek - automatikusan meghívódnak, amikor létrehozol egy új objektumpéldányt - a <literal>new</literal> kulcsszóval. A PHP 3-ban egy metódus - úgy válik konstruktorrá, hogy a neve megyezik az osztály nevével. - A PHP 4-ben egy metódus úgy lesz kostruktorrá, hogy a neve - megegyezik annak az osztálynak a nevével, ahol deifiniálták. - A különbség hajszálnyi, de kritikus (lásd lentebb). + A konstruktorok az osztályok olyan metódusai, amelyek + automatikusan meghívásra kerülnek egy új objektumpéldány + <literal>new</literal> kulcsszóval történõ létrehozása során. + A PHP 3-ban egy metódus akkor tekinthetõ konstruktornak, ha + a neve megyezik az osztály nevével. A PHP 4-ben egy metódus akkor + lesz kostruktorrá, hogy a neve megegyezik annak az osztálynak a + nevével, ahol deifiniálták. A különbség hajszálnyi, de kritikus + (lásd lentebb). </para> <informalexample> @@ -289,11 +291,11 @@ <para> Ez egy olyan Auto_Kosar nevû osztályt [objektumtípust] hoz létre, - mint a Kosar, csak rendelkezik egy konstruktorral, ami inicializálja + mint a Kosar, csak rendelkezik egy konstruktorral, amely inicializálja a kosarat 1 darab "10"-es áruval, valahányszor a new operátorral hozzuk létre az objektumot. [de csak akkor!!!] A konstruktoroknak - is lehetnek paramétereik, és ezek lehetnek opcionálisak, ami még - hasznosabbá teszi õket. Ha paraméterek nálkül is használható osztályt + is lehet átadni paramétereket, és ezek lehetnek elhagyhatók is, amely még + hasznosabbá teszi õket. Ha paraméterek nélkül is használható osztályt szeretnél, állíts be minden paraméternek alapértéket. </para> @@ -401,7 +403,7 @@ <para> A PHP 3-ban az A osztály B() metódusa hirtelen konstruktorrá - válik a B osztályban, habár soha sem volt ez a célunk. + válik a B osztályban, habár ez soha sem volt cél. A PHP 3 szabálya: 'A konstruktor egy metódus, aminek ugyanaz a neve, mint az osztálynak'. A PHP 3 nem foglalkozik azzal, hogy a metódus a B osztályban van-e definiálva, vagy öröklés @@ -455,9 +457,9 @@ </caution> <para> - Idõnként hasznos az õsök metódusaira vagy tulajdonádaira - hivatkozni, vagy olyan osztály metódusokat meghívni, amik - nem példányosult objektumokhoz tartoznak. A :: operátor + Idõnként hasznos az õsosztályok metódusaira vagy tulajdonságaira + hivatkozni, vagy olyan osztálymetódusokat meghívni, amelyek + nem példányosított objektumokhoz tartoznak. A :: operátor erre használható. </para> @@ -498,42 +500,39 @@ </informalexample> <para> - A fenti példa meghívja a pelda() metódusát az - A osztálynak, habár nincs konkrét példányunk az - A osztályból, tehát nem írhatnánk azt, hogy - $a->pelda(), vagy valami hasonlót. Ehelyett a - pelda() egy 'osztály metódusként' viselkedik, - azaz az osztály egy függvényeként, és nem - egy példány metódusaként. + A fenti példa meghívja az A osztály pelda() metódusát, + habár nincs konkrét példányunk az A osztályból, + tehát ezt nem írhatnánk le az <literal>$a->pelda()<literal>-hoz + hasonlóan. Ehelyett a pelda() egy 'osztálymetódusként' viselkedik, + azaz az osztály egy függvényeként, és nem egy példány metódusaként. </para> <para> - Osztály függvények léteznek, de osztály tulajdonságok + Osztálymetódusok léteznek, de osztálytulajdonságok (változók) nem. Mivel a hívás pillanatában semmilyen - objektum nem létezik, egy osztály metódus nem használhat + objektum nem létezik, egy osztálymetódus nem használhat objektum változókat, és egyáltalán nem használhatja a $this - speciális referenciát. Egy objektum metódus azonban + speciális referenciát. Egy objektummetódus azonban természetesen dolgozhat globális változókkal és lokális változókkal is. </para> <para> - A fenti példában a B osztály felüldefiniálja a pelda() - metódust. Az eredeti definíció az A osztályból eltûnik, - és nem érhetõ el többé, hacsak nem az A osztályban + A fenti példa a B osztályban felüldefiniálja a pelda() + metódust. Az A osztálytól örökölt eredeti definíció eltûnik, + és többé nem érhetõ el, hacsak nem az A osztályban megvalósított pelda() függvényre hivatkozol közvetlenül, - a :: operátor segítségével. Írj A::pelda()-t, hogy - elérd ezt a hatást (ebben az esetben írhatnál - parent::pelda()-t is, ahogy a következõ bekezdésekben - olvasható). + a :: operátor segítségével. Ennek eléréséhez A::pelda()-t + kell használni (ebben az esetben írhatnál parent::pelda()-t is, + ahogy az a következõ szakaszban olvasható). </para> <para> - Ebben a környezetben van egy aktuálisan használt objektum, + Ebben a környezetben van aktuálisan használt objektum, és ennek lehetnek objektum változói (tulajdonságai). - Ezért ha egy objektum függvényen belül használod ezt - az operátort, alkalmazhatod a $this-t, és az objektum - tulajdonságokat. + Ekképpen ha egy objektummetóduson belül használod ezt + az operátort, akkor alkalmazhatod a $this-t, és + felhasználhatod az objektum tulajdonságait. </para> </sect1> @@ -541,7 +540,7 @@ <title><literal>parent</literal></title> <para> - Gyakran van szükség arra, hogy a szülõ tulajdonságaira, + Gyakran van szükség arra, hogy a szülõ tulajdonságaira vagy metódusaira hivatkozzunk leszármazott osztályokban. Ez különösen igaz, ha a leszármazott osztály egy finomítása, vagy specializálása az alaposztálynak. @@ -612,7 +611,7 @@ A <function>serialize</function> egy karaktersorozatot ad vissza, ami az átadott érték byte-sorozatban megadott megfelelõje. Az <function>unserialize</function> - alakít vissza egy ilyen karaktersorozatot az eredeti + visszaalakít egy ilyen karaktersorozatot az eredeti értékké. A szerializációs folyamat során egy objektum átadásával elmenthetjük az objektum minden tulajdonságát (változóját). A függvények nem kerülnek elmentésre, @@ -621,18 +620,18 @@ <para> Ahhoz, hogy az <function>unserialize</function> segítségével - vissza tudj állítani egy objektumot, az objektum osztályának - definiálva kell lennie. Azaz, ha van egy $a objektumod - (az A osztályból), az elso.php oldalon, és ezt szerializálod, - kapsz egy karaktersorozatot, ami az A osztályra hivatkozik, - és tartalmazza az összes $a-ban lévõ változó (tulajdonság) - értékét. Ha ezt a karaktersorozatot a masodik.php oldalon - objektummá szeretnéd alakítani, újra létrehozva az A osztály - $a nevû objektumát, az A osztály definíciója rendelkezésre - kell, hogy álljon a masodik.php oldalon is. Ez úgy érhetõ - el, hogy az A osztály definícióját egy külsõ állományban - tárolod, és ezt alkalmazod mind az elso.php, mind a masodik.php - oldalon. + vissza lehessen állítani egy objektumot, az objektum osztályának + (típusának) már definiálva kell lennie. Ez a következõket jelenti + egy példán keresztül megvilágítva. Ha az elso.php oldalon az A + osztályú $a objektumot szerializálod, akkor kapsz egy olyan + karaktersorozatot, amely az A osztályra hivatkozik, és tartalmazza + az összes $a-ban lévõ változó (tulajdonság) értékét. + Ha ezt a karaktersorozatot a masodik.php oldalon objektummá szeretnéd + alakítani, újra létrehozva az A osztályú $a nevû objektumot, akkor az + A osztály definíciójának rendelkezésre kell állnia a masodik.php + oldalon is. Ez úgy érhetõ el, hogy az A osztály definícióját egy külsõ + állományban tárolod, és ezt alkalmazod mind az elso.php, mind a + masodik.php oldalon. </para> <informalexample> @@ -660,7 +659,7 @@ fclose($fp); masodik.php: - // ez szükséges, hogy a deszerializáció rendben legyen + // ez szükséges, hogy a deszerializáció rendben menjen include("aosztaly.inc"); $s = implode("", @file("tarolas")); @@ -694,9 +693,9 @@ <para> Ezért ha a fenti példában az $a a session részévé - válik a <literal>session_register("a")</literal> hívással, - be kell töltened az <literal>aosztaly.inc</literal> - külsõ állományt minden oldalon, és nem csak az elso.php + válik a <literal>session_register("a")</literal> meghívásával, + akkor be kell töltened az <literal>aosztaly.inc</literal> + külsõ állományt minden oldalon, nem csak az elso.php és masodik.php programokban. </para> </sect1> @@ -708,15 +707,15 @@ A <function>serialize</function> ellenõrzi, hogy van-e az osztályodnak <literal>__sleep</literal> nevû metódusa. Ha van, ez lefut a szerializáció elõtt. Ez megtisztíthatja az objektumot, - és végül egy tömbbel tér vissza, ami tartalmazza azon tulajdonságok - neveit, amik az objektummal kapcsolatban szerializálásra kerülnek. + és végül egy tömbbel tér vissza, amely tartalmazza az adott + objektum ténylegesen szerializálandó tulajdonságainak neveit. </para> <para> A <literal>__sleep</literal> célja, hogy bezárjon minden adatbázis kapcsolatot, a várakozó adatokat lementse, és - hasonló 'tisztító' jellegû tevékenységeket végezzen. Akkor - is hasznos lehet, ha nagyon nagy objektumaid vannak, amiket + hasonló 'tisztító' jellegû tevékenységeket végezzen. Hasznos + lehet akkor is, ha nagyon nagy objektumaid vannak, amelyeket külön szeretnél lementeni. </para> @@ -942,4 +941,7 @@ 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 + -->