cvs: phpdoc /hu/language control-structures.xml

From: Date: Tue, 29 Jan 2002 23:59:16 +0000
Subject: cvs: phpdoc /hu/language control-structures.xml
Groups: php.doc 
Request: Send a blank email to phpdoc+get-969341738@lists.php.net to get a copy of this message
gerzson Tue Jan 29 18:59:16 2002 EDT Modified files: /phpdoc/hu/language control-structures.xml Log: sync to EN revision

Index: phpdoc/hu/language/control-structures.xml diff -u phpdoc/hu/language/control-structures.xml:1.16 phpdoc/hu/language/control-structures.xml:1.17 --- phpdoc/hu/language/control-structures.xml:1.16 Tue Jan 29 13:06:24 2002 +++ phpdoc/hu/language/control-structures.xml Tue Jan 29 18:59:16 2002 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="iso-8859-2"?> -<!-- EN-Revision: 1.48 Maintainer: goba Status: ready --> +<!-- EN-Revision: 1.53 Maintainer: goba Status: ready --> <!-- CREDITS: kgergely,gerzson --> <chapter id="control-structures"> @@ -989,128 +989,102 @@ </sect2> </sect1> - <sect1 id="function.require"> - <title><function>require</function></title> - <simpara> - 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> + <sect1 id="function.return"> + <title>return</title> <simpara> - Ha az "URL fopen wrapper"-ek be vannak kapcsolva (ami az - 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! - </simpara> - <simpara> - 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 - 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 é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 - <function>require</function> <emphasis>mindig</emphasis> - beolvassa a célfájlt, <emphasis>még akkor is, ha a sor, - ahol áll soha nem hajtódik végre</emphasis>. Ha - feltételesen szeretnél beemelni egy fájl-t, használd - 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 - fog lefutni. + A <function>return</function> utasítás függvényen belül használva + azonnal befejezi a folyó függvény futását, és a paramétereként + megadott érték szolgáltatja a függvény visszatérési értékét. + A <function>return</function> az <function>eval</function> + függvénnyel futatott kód vagy a szkript futását is leállítja. + </simpara> + <simpara> + A globális érvényességi körben használva a folyó szkript futását + szakítja meg. Ha ez a szkript az <function>include</function> + vagy a <function>require</function> hatására lett futtatva, akkor + a vezérlés visszaadódik arra a fájlra, ahol ezek az utasítások + szerepelnek, valamint <function>include</function> esetén a + <function>return</function> paramétere lesz az + <function>include</function> utasítás visszatérési értéke. + Ha a <function>return</function> a fõ szkriptben lett kiadva, akkor + befejezõdik a szkript futása. Ha ez a <link + linkend="ini.auto-prepend-file">auto_prepend_file</link> vagy <link + linkend="ini.auto-append-file">auto_append_file</link> + konfigurációs beállításban szereplõ fájlok valamelyikében történik + (lásd: <link linkend="configuration.file">konfigurációs fájl</link>) + akkor, (csak) ezeknek a futása fejezõdik be. + </simpara> + <simpara>További magyarázatért lásd <link + linkend="functions.returning-values">Visszatérési értékek</link> c. + fejezetet! </simpara> + <note> + <simpara> + Mivel a <function>return</function> nyelvi szerkezet és nem függvény, + a paraméterét körülvevõ zárójelek <emphasis>elhagyhatók</emphasis>. + Valójában az a megszokottabb, hogy nem is használják, bár ez egyáltalán + nem számít. + </simpara> + </note> + </sect1> + + <sect1 id="function.require"> + <title><function>require</function></title> <simpara> - Hasonlóan, a ciklusok sem változtatják meg a - <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. + A <function>require</function> beilleszti és feldolgozza a megadott + fájlt. Ennek részletes mikéntjérõl, lásd <function>include</function>! </simpara> - <para> - Ez azt jelenti, hogy hiába teszed a - <function>require</function>-t egy ciklus belsejébe azt - várva, hogy különbözõ fájlokat hozzon be minden iterációra. - Ha ezt szeretnéd használd az <function>include</function>-ot. - A require-t konstans fájlnevekkel használd: - <informalexample> - <programlisting role="php"> -<![CDATA[ -require ('header.php'); -]]> - </programlisting> - </informalexample> - </para> <simpara> - 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 teljes kódja úgy fog viselkedni, mintha a függvényen - belül írtad volna. + A <function>require</function> és az <function>include</function> + megegyezik egymással a hibakezelését leszámítva. + Az <function>include</function> nem fatális hibát, <link + linkend="internal.e-warning">figyelmeztetést</link> generál, a + <function>require</function> viszont <link linkend="internal.e-error"> + fatális hibát</link> jelez. Másszóval, ahol az igényelt fájl nemlétekor + a futást meg kell szakítani, ajánlott a <function>require</function>. + Az <function>include</function> nem így viselkedik, a hibától függetlenül + a szkript futtatása folytatódik. Bizonyosodj meg, hogy a <link + linkend="ini.include-path">include_path</link> helyesen van beállítva! </simpara> <para> - 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>-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. - <informalexample> + <example> + <title>Egyszerû <function>require</function> példák</title> <programlisting role="php"> <![CDATA[ -/* Ezek a példák feltételezik, hogy a szerver be van állítva a .php - * fájlok feldolgozására és nincs beállítva a .txt fájlok feldolgozására - * A 'mûködik' azt jelenti, hogy az $elsovaltozo és $masodikvaltozo - * változók elérhetõek a behívott fájlban. */ +<?php -/* Nem mûködik: a file.txt nem kerül feldolgozásra */ -require ("http://szerver/file.txt?elsovaltozo=1&masodikvaltozo=2"); +require 'prepend.php'; -/* 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 $valamifajl; -/* Mûködik */ -require ("http://szerver/file.php?elsovaltozo=1&masodikvaltozo=2"); +require ('valamifajl.txt'); -$elsovaltozo = 1; -$masodikvaltozo = 2; -require ("file.txt"); /* Mûködik */ -require ("file.php"); /* Mûködik */ +?> ]]> </programlisting> - </informalexample> + </example> </para> <simpara> - A PHP 3-ban van rá lehetõség, hogy egy <literal>return</literal>-t - 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 - ilyesfélét, akkor nézd meg az <function>include</function>-ot. + Lásd az <function>include</function> oldalát még több példáért! </simpara> + <note> + <simpara> + PHP 4.0.2 elõtt, a következõk szerint mûködött. A <function>require</function> + mindig beolvasta a kívánt fájlt, még ha az a <function>require</function>-t + tartalmazó sorra soha nem is került vezérlés. A feltételes szerkezetek + nem befolyásolták a mûködését. Mégis, ha a <function>require</function>-t + tartalmazó sorra nem került vezérlés a megadott fájlban lévõ kód nem futott + le. Ehhez hasonlóan, a ciklusok sem befolyásolták a mûködését. Habár + a fájlban szereplõ kód függött az azt körülölelõ ciklustól, a + <function>require</function> maga csak egyszer történt meg. + </simpara> + </note> <simpara> Lásd még: <function>include</function>, <function>require_once</function>, - <function>include_once</function>, <function>readfile</function>, - és <function>virtual</function>. + <function>include_once</function>, <function>eval</function>, + <function>file</function>, <function>readfile</function>, + <function>virtual</function> és <link + linkend="ini.include-path">include_path</link>! </simpara> </sect1> @@ -1121,54 +1095,139 @@ megadott fájlt. </simpara> <simpara> - Ha az "URL fopen wrapper"-ek be vannak kapcsolva (ami az - alapbeállítású helyzet), akkor az <function>include</function> - használatakor távoli fájlt is megadhatsz. 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. - </simpara> + Az alábbiak igazak a <function>require</function>-ra is. + A <function>require</function> és az <function>include</function> + megegyezik egymással a hibakezelését leszámítva. + Az <function>include</function> nem fatális hibát, <link + linkend="internal.e-warning">figyelmeztetést</link> generál, a + <function>require</function> viszont <link linkend="internal.e-error"> + fatális hibát</link> jelez. Magyarán, ahol az igényelt fájl nemlétekor + a futást meg kell szakítani, ajánlott a <function>require</function>. + Az <function>include</function> nem így viselkedik, a hibától függetlenül + a szkript futtatása folytatódik. Bizonyosodj meg, hogy a <link + linkend="ini.include-path">include_path</link> helyesen van beállítva! + </simpara> + <simpara> + A fájl beillesztése során a megadott fájl örökli az + <function>include</function> helyén érvényes <link + linkend="language.variables.scope">változó hatáskört</link>. Bármely + változó, amely azon a ponton elérhetõ, elérhetõ a beillesztett fájlban is. + </simpara> + <para> + <example> + <title>Egyszerû <function>include</function> példa</title> + <programlisting role="php"> +<![CDATA[ +valtozok.php +<?php + +$szin = 'zöld'; +$gyumolcs = 'alma'; + +?> + +teszt.php +<?php + +echo "Egy $szin $gyumolcs"; // Egy + +include 'valtozok.php'; + +echo "egy $szin $gyumolcs"; // Egy zöld alma + +?> +]]> + </programlisting> + </example> + </para> <simpara> - 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>. + Függvény belsejében a megadott fájlban szereplõ kód úgy fog viselkedni, + mintha az magában a függvényben szerepelt volna. Ez azt jelenti, hogy + a fájl örökli a változók érvényességi körét. </simpara> - <para> - Ez történik valahányszor az <function>include</function>-hoz - é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"> + <example> + <title>Függvényen belüli beillesztés</title> + <programlisting role="php"> <![CDATA[ -$fileok = array ('elso.php', 'masodik.php', 'harmadik.php'); -for ($i = 0; $i < count($fileok); $i++) { - include $files[$i]; +<?php + +function ize() +{ +global $szin; + + include 'valtozok.php'; + + echo "Egy $szin $gyumolcs"; } + +/* valtozok.php az ize() függvény hatóköréébe esik, * + * így a $gyumolcs nem elérhetõ a fõggvényen kívül. * + * A $szin igen, mivel globálisnak lett deklarálva. */ + +ize(); // Egy zöld alma +echo "Egy $szin $gyumolcs"; // Egy zöld + +?> ]]> </programlisting> - </informalexample> + </example> </para> + <simpara> + 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> + 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 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 teljesen 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. + </simpara> <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 - 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 - a tartalma, akár nem (például egy olyan - <link linkend="control-structures.if">if</link> - kifejezésben, amely mindig hamis). + <example> + <title><function>include</function> HTTP-n keresztül</title> + <programlisting role="php"> +<![CDATA[ +/* Ezek a példák feltételezik, hogy a szerver be van állítva a .php * + * fájlok feldolgozására és nincs beállítva a .txt fájlok feldolgozására * + * A 'mûködik' azt jelenti, hogy az $ize és $bigyo változók elérhetõek * + * a hívott fájlban. */ + +// Nem mûködik: a file.txt nem kerül feldolgozásra +include ("http://szerver/file.txt?ize=1&bigyo=2"); + +// Nem mûködik: egy 'file.php?ize=1&bigyo=2' nevû fájlt keres a helyi gépen +include ("file.php?ize=1&bigyo=2"); + +// Mûködik +include ("http://szerver/file.php?ize=1&bigyo=2"); + +$ize = 1; +$bigyo = 2; +include ("file.txt"); /* Mûködik */ +incluie ("file.php"); /* Mûködik */ +]]> + </programlisting> + </example> + A kapcsolodó információkért lásd még: <link + linkend="features.remote-files">Távoli fájlok elérése</link>, + <function>fopen</function> és <function>file</function> </para> <para> - 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> + Mivel az <function>include</function> és a <function>require</function> + különleges nyelvi elem, kapcsos zárójelekkel kell közrefogni, ha egy + feltételes utasításon belül szerepel. + <example> + <title><function>include</function> feltételes blokkon belül</title> <programlisting role="php"> <![CDATA[ /*Ez NEM JÓ, és nem a várt eredményt adja */ @@ -1187,151 +1246,70 @@ } ]]> </programlisting> - </informalexample> + </example> </para> + <simpara> - 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 + <literal>return</literal> utasítást lehet elhelyezni egy <function>include</function>-olt fájlban annak érdekében, 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 - értelmezési hibát (parse error) okoz. + értéket a hívó szkriptnek. A visszatérési értéket ugyanúgy + használhatod, mint egy közönséges függvénynél. </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.php</filename>) abban a könyvtárban van, - mint a fõ fájl: - <programlisting role="php"> + <note> + <simpara> + PHP 3, a return nem jelenhet meg függvény blokkon kívül máshol, + amely esetben a függvénybõ ltörténõ visszatérést jelöli. + </simpara> + </note> + <para> + <example> + <title>Az <function>include</function> és a <function>return</function> utasítás</title> + <programlisting role="php"> <![CDATA[ +return.php <?php -echo "Return elõtt<br>\n"; -if (1) { - return 27; -} -echo "Return után<br>\n"; + +$var = 'PHP'; + +return $var; + ?> -]]> - </programlisting> - </para> - <para> - És legyen a fõ fájl (<filename>main.php</filename>) - tartalma az alábbi: - <programlisting role="php"> -<![CDATA[ + +noreturn.php <?php -$visszteresi_ertek = include ('test.inc'); -echo "A fájl ezt adta vissza: '$visszteresi_ertek'<br>\n"; + +$var = 'PHP'; + ?> -]]> - </programlisting> - </para> - <para> - Ha a <filename>main.php</filename> fájlt PHP 3-ból hívjuk meg, - értelmezési hibát (parse error) kapunk a 2. sorban; nem lehet - egy <function>include</function>-nak az értékét venni. - PHP 4-ben az eredmény pedig: - <screen> -Return elõtt -A fájl ezt adta vissza: '27' - </screen> - </para> - <para> - Most pedig változtassuk meg a <filename>main.php</filename> fájlt - az alábbira: - <programlisting role="php"> -<![CDATA[ + +testreturns.php <?php -include ('test.inc'); -echo "Vissztértünk a main.php-ba<br>\n"; -?> -]]> - </programlisting> - </para> - <para> - PHP 4-ben a kimenet: - <screen> -Return elõtt -Vissztértünk a main.php-ba - </screen> - A PHP 3 pedig ezt fogja mondani: - <screen> -Return elõtt -27Vissztértünk a main.php-ba -Parse error: parse error in /home/torben/public_html/phptest/main.php on line 5 - </screen> - </para> - <para> - 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.php</filename> fájlban. Ha a return-t - kivesszük a blokkból, a kimenet ilyen lesz: - <screen> -Return elõtt -27Vissztértünk a main.php-ba - </screen> - </para> - <para> - 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>-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 teljes kódja úgy fog viselkedni, mintha az a függvényen - belül lenne írva. - </simpara> - <para> - 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 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>-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. - <informalexample> - <programlisting role="php"> -<![CDATA[ -/* Ezek a példák feltételezik, hogy a szerver be van állítva a .php - * fájlok feldolgozására és nincs beállítva a .txt fájlok feldolgozására - * A 'mûködik' azt jelenti, hogy az $elsovaltozo és $masodikvaltozo - * változók elérhetõek a behívott fájlban. */ - -/* Nem mûködik: a file.txt nem kerül feldolgozásra */ -include ("http://szerver/file.txt?elsovaltozo=1&masodikvaltozo=2"); - -/* 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"); +$ize = include 'return.php'; -/* Mûködik */ -include ("http://szerver/file.php?elsovaltozo=1&masodikvaltozo=2"); +echo $ize; // kiírja: 'PHP' -$elsovaltozo = 1; -$masodikvaltozo = 2; -include ("file.txt"); /* Mûködik */ -incluie ("file.php"); /* Mûködik */ +$bigyo = include 'noreturn.php'; + +echo $bigyo; // kiírja: 1 + +?> ]]> - </programlisting> - </informalexample> + </programlisting> + </example> </para> <simpara> + <literal>$bigyo</literal> értéke <literal>1</literal>, mert a beillesztés + sikeres volt. Figyeld meg a különbséget a két fenti példa között. Az elsõ + a <function>return</function> segítségével visszaadott egy értéket, a második + nem. Létezik még néhány egyéb módja is változók beemelésének a + <function>fopen</function>, <function>file</function> segítségével, vagy + <function>include</function> és + <link linkend="ref.outcontrol">Kimenet szabályzó függvények</link> együttes + használatával. + </simpara> + <simpara> Lásd még: <function>require</function>, <function>require_once</function>, <function>include_once</function>, <function>readfile</function> és <function>virtual</function>! @@ -1341,155 +1319,38 @@ <sect1 id="function.require-once"> <title><function>require_once</function></title> <para> - 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 - arról, hogy a kód csak egyszer kerüljön beillesztésre, - így megvéd a változók vagy függvények újradeklarásából - eredõ hibáktól. + Az <function>require_once</function> beilleszt és feldolgoz + fájlokat a program futása közben. Ez hasonló az + <function>require</function> mûködéséhez, azzal a fontos különbséggel, + 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> - Példában legyen a következõ két fájl: <literal>eszkozok.php</literal> és <literal>izelib.php</literal> - <example> - <title>eszkozok.php</title> - <programlisting role="php"> -<![CDATA[ -<?php -define("PHPVERSION", floor(phpversion())); -echo "A GLOBÁLIS VÁLTOZÓK JÓK\n"; -function joTea() -{ - return "Az Oolong tea jó ízû!"; -} -?> -]]> - </programlisting> - </example> - <example> - <title>izelib.php</title> - <programlisting role="php"> -<![CDATA[ -<?php -require ("eszkozok.php"); -function valtozoMegjelenites($valtozo) -{ - if (PHPVERSION == 4) { - print_r($valtozo); - } else { - var_dump($valtozo); - } -} - -// más függvények ... -?> -]]> - </programlisting> - </example> - Valamint <literal>require_hiba_bemutatasa.php</literal> nevû szkript: - <example> - <title>require_hiba_bemutatasa.php</title> - <programlisting role="php"> -<![CDATA[ -<?php -require("izelib.php"); -/* A következõ sor hibát generál */ -require("eszkozok.php"); - -$ize = array("1",array("komplex","tömb")); -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); -?> -]]> - </programlisting> - </example> - 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.php on line 5 -]]> - </programlisting> - </informalexample> - 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.php (javítás)</title> - <programlisting role="php"> -<![CDATA[ -... -require_once("eszkozok.php"); -function valtozoMegjelenites($valtozo) { -... -]]> - </programlisting> - </example> - <example> - <title>require_hiba_elkerulese.php</title> - <programlisting role="php"> -<![CDATA[ -... -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.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] => komplex - [1] => tömb - ) - -) -]]> - </programlisting> - </informalexample> - </para> - <para> - 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 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ó. + A <function>require_once</function> használatos azokban az esetekben, + amikor ugyanaz a fájl esetleg többször kerülhet beillesztésre + a szkript futása során, de biztosítani kell, hogy ez ténylegesen csak + egyszer történjen meg, így megelõzve a függvények + ú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 <function>include_once</function> használatához nézd meg a PEAR kódot, ami a legfrissebb PHP disztribúciókban megtalálható. </para> + <note> + <para> + A <function>require_once</function> PHP 4.0.1pl2 verzióban került + a nyelvbe. + </para> + </note> <para> - Lásd még: <function>require</function>, - <function>include</function>, <function>include_once</function>, + Lásd még: <function>include</function>, <function>require</function>, + <function>include_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> <sect1 id="function.include-once"> @@ -1502,25 +1363,26 @@ ismét betölteni. </para> <para> - Mint ahogy a <function>require_once</function> leírásában olvasható, - az <function>include_once</function> használatos azokban az esetekben, - amikor ugyanaz a fájl esetleg többször beillesztésre kerülhet - a szkript futása során, és biztos szeretnél lenni benne, hogy - ez csak egyszer történik meg, így megelõzve a függvények - újradefiniálását, változók értékének átállítását, stb. + Az <function>include_once</function> használatos azokban az esetekben, + amikor ugyanaz a fájl esetleg többször kerülhet beillesztésre + a szkript futása során, de biztosítani kell, hogy ez ténylegesen csak + egyszer történjen meg, így megelõzve a függvények ú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 <function>include_once</function> használatához nézd meg a PEAR kódot, ami a legfrissebb PHP disztribúciókban megtalálható. </para> - <para> + <note> + <para> Az <function>include_once</function> PHP 4.0.1pl2 verzióban került a nyelvbe. - </para> + </para> + </note> <para> - Lásd még: <function>require</function>, - <function>include</function>, <function>require_once</function>, + Lásd még: <function>include</function>, + <function>require</function>, <function>require_once</function>, <function>get_required_files</function>, <function>get_included_files</function>, <function>readfile</function> és <function>virtual</function>!
« previous php.doc (#969341738) next »