goba Tue Jul 10 12:12:12 2001 EDT Modified files: /phpdoc/hu Translators /phpdoc/hu/language types.xml Log: Partially updated, still wont build... The diff between our translated 1.16 and the current 1.35 is 1800 lines :(( I am currently at line 457. More to come, but not today...
Index: phpdoc/hu/Translators diff -u phpdoc/hu/Translators:1.32 phpdoc/hu/Translators:1.33 --- phpdoc/hu/Translators:1.32 Tue Jul 10 09:49:38 2001 +++ phpdoc/hu/Translators Tue Jul 10 12:12:11 2001 @@ -169,7 +169,7 @@ oop.xml Kontra Gergely 1.5 ++ operators.xml Kontra Gergely 1.22 references.xml Kontra Gergely [undrcon] -types.xml Kontra Gergely 1.16 ++ +types.xml Kontra Gergely 1.16 ++ (partially updated) variables.xml Kontra Gergely 1.15 -------- pear --------------------------------------------------------------- about.xml Index: phpdoc/hu/language/types.xml diff -u phpdoc/hu/language/types.xml:1.6 phpdoc/hu/language/types.xml:1.7 --- phpdoc/hu/language/types.xml:1.6 Fri Jan 26 13:10:52 2001 +++ phpdoc/hu/language/types.xml Tue Jul 10 12:12:12 2001 @@ -1,41 +1,97 @@ <chapter id="language.types"> <title>Típusok</title> - <para> - A PHP a következő típusokat támogatja: + <sect1 id="language.types.intro"> + <title>Bevezető</title> + + <simpara> + A PHP nyolc primitív típust támogat. + </simpara> + + <para> + A négy skalár típus: + <itemizedlist> + <listitem> <simpara> - <link linkend="language.types.array">tömb</link> + <link linkend="language.types.boolean">boolean (logikai)</link> </simpara> </listitem> + <listitem> <simpara> - <link linkend="language.types.double">lebegőpontos szám - </link> + <link linkend="language.types.integer">integer (egész szám)</link> </simpara> </listitem> - <listitem> - <simpara> - <link linkend="language.types.integer">egész</link> + + <listitem> + <simpara> + <link linkend="language.types.double">floating-point number + (double, float, lebegőpontos szám)</link> </simpara> </listitem> + <listitem> <simpara> - <link linkend="language.types.object">objektum</link> + <link linkend="language.types.string">string (karakterlánc, + karaktersorozat)</link> </simpara> </listitem> + + </itemizedlist> + + A két összetett típus: + + <itemizedlist> + <listitem> <simpara> - <link linkend="language.types.string">string</link> + <link linkend="language.types.array">array (tömb)</link> + </simpara> + </listitem> + + <listitem> + <simpara> + <link linkend="language.types.object">object (objektum)</link> + </simpara> + </listitem> + + </itemizedlist> + + Végül két speciális típus: + + <itemizedlist> + + <listitem> + <simpara> + <link linkend="language.types.resource">resource (erőforrás)</link> + </simpara> + </listitem> + + <listitem> + <simpara> + <link linkend="language.types.null">&null;</link> </simpara> </listitem> + </itemizedlist> </para> + + <note> + <simpara> + Ebben a kézikönyvben gyakran találkozhatsz + <literal>mixed</literal> paraméterekkel is. + Ez a kvázi-típus csak a dokumentációkban létezik, + annak jelölésére szolgál, hogy többféle lehetőség + adott arra a paraméterre. + </simpara> + </note> + <simpara> - A változó típusát rendszerint nem a programozó határozza meg - [na azért van beleszólása...], hanem, a PHP futási időben határozza - meg a változó környezetétől függően. + A változó típusát rendszerint nem a programozó adja meg + [na azért van beleszólása...], hanem a PHP futási időben + határozza meg a változó környezetétől függően. </simpara> <simpara> Ha egy változó típusát egy adott típusra kell konvertálnunk, @@ -51,22 +107,305 @@ a típusokkal</link> című részt. </simpara> - <sect1 id="language.types.integer"> - <title>Egészek</title> - <para> - Egészeket az alábbi szintaxis bármelyikét használva hozhatunk létre: - <informalexample> - <programlisting role="php"> -$a = 1234; # decimális szám -$a = -123; # egy negatív szám -$a = 0123; # oktális szám (egyenértékű 83 decimálissal) -$a = 0x12; # hexadecimális szám (egyenértékű 18 decimálissal) - </programlisting> - </informalexample> - Az egész számok mérete platformfüggő, de a maximális - érték szokásosan 2 billió (32 bites előjeles egész). - </para> </sect1> + + <sect1 id="language.types.boolean"> + <title>Logikai adattípus</title> + + <simpara> + Ez a legegyszerűbb típus. Egy <type>boolean</type> + igazságértéket fejez ki. Lehet vagy &true; (igaz), + vagy &false; (hamis). + </simpara> + <note> + <simpara> + A logikai adattípus a PHP 4-esben került bevezetésre. + </simpara> + </note> + + <sect2 id="language.types.boolean.syntax"> + <title>Szintaxis</title> + <para> + Egy logikai érték megadásához használhatod a &true; + vagy &false; szavakat, szükség szerint. Egyik jelentése + sem függ a kis- és nagybetűs írásmódtól. + <informalexample> + <programlisting role="php"> +$igaz = True; // a logikai igaz értéket adjuk az $igaz változónak + </programlisting> + </informalexample> + </para> + <para> + Tipikus valamilyen + <link linkend="language.operators">operátor</link> + használatakor kapsz <type>boolean</type> típusú értéket, amit + egy <link linkend="control-structures">vezérlési + szerkezetben</link> fel tudz használni. + <informalexample> + <programlisting role="php"> +if ($akcio == "verzio_kiirasa") // a == <link +linkend="language.operators">operátor</link> <type>boolean</type> értékkel tér vissza +{ + echo "Ez az 1.23-as változat"; +} + +// ez nem szükséges +if ($elvalaszto_kiirasa == true) +{ + echo "<hr>\n"; +} + +// mivel egyszerűen ez is működik +if ($elvalaszto_kiirasa) +{ + echo "<hr>\n"; +} + </programlisting> + </informalexample> + </para> + </sect2> + + <sect2 id="language.types.boolean.casting"> + <title>Logikai értékké alakítás</title> + <simpara> + Ha kifejezetten <type>boolean</type> típusúvá szeretnél + alakítani egy értéket, használd a <literal>(bool)</literal> + vagy a <literal>(boolean)</literal> típusátalakítást. + A legtöbb esetben azonban nem kell ezt alkalmaznod, mivel + az érték automatikusan átalakul, ha egy operátor, függvény, + vagy vezérlési szerkezet <type>boolean</type> típusú + argumentumot vár. + </simpara> + <simpara> + Lásd még a <link linkend="language.types.type-juggling">Bűvészkedés + a típusokkal</link> című részt. + </simpara> + + <para> + Amikor <type>boolean</type> típusúvá kell alakítani egy + értéket, az alábbiak &false; értéket adnak: + + <itemizedlist> + <listitem> + <simpara>a <link linkend="language.types.boolean">boolean</link> + típusú &false; </simpara> + </listitem> + <listitem> + <simpara>az <link linkend="language.types.integer">integer (egész)</link + >típusú 0 (nulla) </simpara> + </listitem> + <listitem> + <simpara>a <link linkend="language.types.double">double +(lebegőpontos)</link> + 0.0 (nulla) </simpara> + </listitem> + <listitem> + <simpara>az üres <link linkend="language.types.string" + >string</link>, és a "0" <link linkend="language.types.string" + >string</link> </simpara> + </listitem> + <listitem> + <simpara>egy elemeket nem tartalmazó + <link linkend="language.types.array">array (tömb)</link></simpara> + </listitem> + <listitem> + <simpara>egy elemeket nem tartalmazó + <link linkend="language.types.object">object (objektum)</link></simpara> + </listitem> + <listitem> + <simpara>a speciális <link linkend="language.types.null" + >&null;</link> érték + </simpara> + </listitem> + </itemizedlist> + + Minden más érték &true; lesz (beleértve bármilyen + <link linkend="language.types.resource">resource (eőforrás)</link> + típusú értéket). + <warning> + <simpara> + A <literal>-1</literal> is &true; lesz, + mint minden más nem nulla (akár negatív, akár pozitív) szám! + </simpara> + </warning> + </para> + </sect2> + </sect1> + + + <sect1 id="language.types.integer"> + <title>Egész számok</title> + + <simpara> + Egy <type>integer</type> a következő halmaz része: + Z = {..., -2, -1, 0, 1, 2, ...}. + </simpara> + + <para> + Lásd még a + <link linkend="ref.gmp">Tetszőleges pontosságú egészek</link> és a + <link linkend="language.types.double">Lebegőpontos számok</link> + című részeket. + </para> + + <sect2 id="language.types.integer.syntax"> + <title>Szintaxis</title> + <simpara> + Az egészek megadhatók decimális (10 alapú), hexadecimális (16 alapú) + vagy oktális (8 alapú) számként, opcionális előjellel (- vagy +). + </simpara> + <para> + Ha az oktális formát választod, a számot egy + <literal>0</literal> (nulla) jeggyel kell kezdened, ha a + hexadecimálisat, akkor <literal>0x</literal>-el. + <example> + <title>Egész értékek</title> + <programlisting role="php"> +$a = 1234; # decimális szám +$a = -123; # negatív szám +$a = 0123; # oktális szám (megegyezik a 83 decimális számmal) +$a = 0x1A; # hexadecimális szám (megegyezik a 26 decimális számmal) + </programlisting> + </example> + Az egészek maximális mérete operáciüs rendszertől függ, + az átlagos érték a két billió (32 bites előjeles egész). + </para> + <note> + <simpara> + PHP-ben nincs egész osztás. Az <literal>1/2</literal> + művelet a <literal>0.5</literal> <type>double (lebegépontos)</type> + értéket eredményezi. + </simpara> + </note> + </sect2> + + <sect2 id="language.types.integer.overflow"> + <title>Egészek értelmezési határának túllépése</title> + <para> + Az <type>integer</type> típus értelmezési tartományán kívül + eső egész értékek <type>double</type> típussá alakulnak. + <informalexample> + <programlisting role="php"> +$nagy_szam = 2147483647; +var_dump($nagy_szam); +// kimenete: int(2147483647) +$nagyobb_szam = 2147483648; +var_dump($nagyobb_szam); +// kimenete: float(2147483648) + </programlisting> + </informalexample> + Ráadásul ha valamilyen függvény, vagy operátor az + <type>integer</type> típus értelmezési tartományán kívül + eső értéket ad, a <type>double</type> típussá alakítás + automatikusan megtörténik. + <informalexample> + <programlisting role="php"> +$millio = 1000000; +$nagy_szam = 50000 * $millio; +var_dump($nagy_szam); +// kimenete: float(50000000000) + </programlisting> + </informalexample> + <warning> + <simpara> + Sajnálatosan meg kell említenünk, hogy egy hiba van + a PHP-ben (még a 4.0.6-osban is, de feltehetően a 4.0.7-es + már javítja a hibát). Ez az átalakítás nem működik mindig + pontosan, ha negatív számokkal is számolunk. Ha mindkét + operandus pozitív, nincs semmi probléma. Például: ha a + <literal>-50000 * $millio</literal> értéket kérjük, + a válasz: <literal>-429496728</literal>. + </simpara> + </warning> + </para> + </sect2> + + <sect2 id="language.types.integer.casting"> + <title>Egész értékké alakítás</title> + <simpara> + Ha kifejezetten <type>integer</type> típusúvá szeretnél + alakítani egy értéket, használd az <literal>(int)</literal> + vagy az <literal>(integer)</literal> típusátalakítást. + A legtöbb esetben azonban nem kell ezt alkalmaznod, mivel + az érték automatikusan átalakul, ha egy operátor, függvény, + vagy vezérlési szerkezet <type>integer</type> típusú + argumentumot vár. + </simpara> + <simpara> + Lásd még a <link linkend="language.types.type-juggling">Bűvészkedés + a típusokkal</link> című részt. + </simpara> + + <sect3 id="language.types.integer.casting.from-boolean"> + <title>Átalakítás<link linkend="language.types.boolean" + >boolean (logikai)</link> értékekről</title> + <simpara> + A &false; (hamis) érték a + <literal>0</literal> (nulla) egész + számmá alakul, a &true; (igaz) érték + az <literal>1</literal> (egy) egész számot adja. + </simpara> + </sect3> + + <sect3 id="language.types.integer.casting.from-double"> + <title>Átalakítás lebegőpontos értékekről</title> + <simpara> + Lebegépontos számok egész értékké alakításakor + a szám tört része elvész, azaz + <emphasis>lefelé kerekítés</emphasis> történik. + </simpara> + + <para> + Ha a lebegőpontos szám az egész tartományon kívül esik + (általában <literal>+/- 2.15e+9 = 2^31</literal>), + az eredmény nem definiált, mivel a lebegőpontos szám + nem rendelkezik elég precizitással, hogy pontos + egész eredményt kapj. Sem warning, sem notice szintű + hiba nem lép fel ebben az esetben! + </para> + + <warning><para> + Soha ne alakíts egy ismeretlen törtszámot + <type>integer</type> típusúvá, mivel ez időnként nem + várt eredményekhez vezethet. + <informalexample> + <programlisting role="php"> +echo (int) ( (0.1+0.7) * 10 ); // kiírja, hogy 7! + </programlisting> + </informalexample> + + Lásd a <link + linkend="warn.float-precision">a lebegőpontos + számok pontotsságának problémái</link> című részt. + </para></warning> + </sect3> + + <sect3 id="language.types.integer.casting.from-string"> + <title>Átalakítás karakterláncokról</title> + <simpara> + Lásd a <link linkend="language.types.string.conversion">String + átalakítás</link> című részt. + </simpara> + </sect3> + + <sect3 id="language.types.integer.casting.from-other"> + <title>Átalakítás más típusokról</title> + <para> + Az egésszé alakítás viselkedése más típusokra nem + definiált. Jelenleg ezek az átalakítások megegyeznek + azzal, mintha először <link linkend="language.types.boolean.casting" + >logikai</link>, majd utána egész értékké + alakítottad volna a kiindulási értéket. + <caution> + <simpara> + Erre a viselkedeésre azonban <emphasis>nem</emphasis> + szabad építeni, mivel minden figyelmeztetés nélkül + megváltozhat. + </simpara> + </caution> + </para> + </sect3> + + </sect2> + </sect1> <sect1 id="language.types.double"> <title>Lebegőpontos számok</title>