cvs: phpdoc-da /reference/array/functions each.xml end.xml extract.xml
| From: | Jesper Laursen | Date: | Sun, 10 Oct 2004 09:17:36 +0000 |
| Subject: | cvs: phpdoc-da /reference/array/functions each.xml end.xml extract.xml | ||
| Groups: | php.doc.da | ||
| Request: | Send a blank email to doc-da+get-303@lists.php.net to get a copy of this message | ||
lauer Sun Oct 10 05:17:36 2004 EDT
Added files:
/phpdoc-da/reference/array/functions each.xml end.xml extract.xml
Log:
Initial translation
http://cvs.php.net/co.php/phpdoc-da/reference/array/functions/each.xml?r=1.1&p=1 Index: phpdoc-da/reference/array/functions/each.xml +++ phpdoc-da/reference/array/functions/each.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <!-- EN-Revision: 1.15 Maintainer: lauer Status: ready --> <refentry id="function.each"> <refnamediv> <refname>each</refname> <refpurpose> Returnerer den aktuelle nøgle og værdi fra et array, og flytte den interne array pointer en plads frem </refpurpose> </refnamediv> <refsect1> <title>Beskrivelse</title> <methodsynopsis> <type>array</type><methodname>each</methodname> <methodparam><type>array</type><parameter>&array</parameter></methodparam> </methodsynopsis> <para> Returnerer den aktuelle nøgle og værdi fra arrayet <parameter>array</parameter> og flytter array pointeren en plads frem. Dette par er returneret i en array med 4 elementer. Med nøglerne <literal>0</literal>, <literal>1</literal>, <literal>key</literal> og <literal>value</literal>. Elementerne <literal>0</literal> and <literal>key</literal> indeholder navnet på nøglenværdien og <literal>1</literal> og <literal>value</literal> indeholder dataen. </para> <para> Hvis den interne pointer for arrayet peger efter den sidste element af arrayet, vil <function>each</function> returnere &false;. </para> <para> <example> <title><function>each</function> eksempel</title> <programlisting role="php"> <![CDATA[ <?php $foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese"); $bar = each($foo); print_r($bar); ?> ]]> </programlisting> <para> <varname>$bar</varname> indeholder nu følgende nægler/værdier: </para> <screen> <![CDATA[ Array ( [1] => bob [value] => bob [0] => 0 [key] => 0 ) ]]> </screen> </example> </para> <para> <informalexample> <programlisting role="php"> <![CDATA[ <?php $foo = array("Robert" => "Bob", "Seppo" => "Sepi"); $bar = each($foo); print_r($bar); ?> ]]> </programlisting> <para> <varname>$bar</varname> indeholder nu følgende nægler/værdier: </para> <screen> <![CDATA[ Array ( [1] => Bob [value] => Bob [0] => Robert [key] => Robert ) ]]> </screen> </informalexample> </para> <para> <function>each</function> bliver typisk brugt i forbindelse med <function>list</function> til at gå igennem et array. Her er et eksempel: <example> <title>Gennemgang af array med <function>each</function></title> <programlisting role="php"> <![CDATA[ <?php $fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry'); reset($fruit); while (list($key, $val) = each($fruit)) { echo "$key => $val\n"; } ?> ]]> </programlisting> <para> Viser: </para> <screen> <![CDATA[ a => apple b => banana c => cranberry ]]> </screen> </example> </para> <para> Efter at <function>each</function> er blevet udført, vil den interne array pointer peje på næste element eller efter det sidste element, hvis den rammer enden af arrayet. Du skal bruge <function>reset</function> hvis du gennemgå arrayet igen med each funktionen. </para> <caution> <para> Når man indsætter et nyt element i et array bliver array pointeren sat til det første element igen. Derfor vil vi i vores eksempel ovenfor have lavet en uendelig løkke, hvis vi havde tildelt en ny variable til <varname>$fruit</varname> inde i vores løkke. </para> </caution> <para> Se også <function>key</function>, <function>list</function>, <function>current</function>, <function>reset</function>, <function>next</function>, <function>prev</function> og <link linkend="control-structures.foreach">foreach</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/co.php/phpdoc-da/reference/array/functions/end.xml?r=1.1&p=1 Index: phpdoc-da/reference/array/functions/end.xml +++ phpdoc-da/reference/array/functions/end.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <!-- EN-Revision: 1.11 Maintainer: lauer Status: ready --> <refentry id="function.end"> <refnamediv> <refname>end</refname> <refpurpose> Sætte den interne pointer i et array til dets sidste element </refpurpose> </refnamediv> <refsect1> <title>Beskrivelse</title> <methodsynopsis> <type>mixed</type><methodname>end</methodname> <methodparam><type>array</type><parameter>&array</parameter></methodparam> </methodsynopsis> <para> <function>end</function> flytter <parameter>array</parameter>'s interne pointer til det sidste element i rækken og returnerer den værdi. </para> <para> <example> <title>Et simpelt eksempel med <function>end</function></title> <programlisting role="php"> <![CDATA[ <?php $fruits = array('apple', 'banana', 'cranberry'); echo end($fruits); // cranberry ?> ]]> </programlisting> </example> </para> <para> Se også <function>current</function>, <function>each</function>, <function>prev</function>, <function>next</function> og <function>reset</function>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/co.php/phpdoc-da/reference/array/functions/extract.xml?r=1.1&p=1 Index: phpdoc-da/reference/array/functions/extract.xml +++ phpdoc-da/reference/array/functions/extract.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <!-- EN-Revision: 1.17 Maintainer: lauer Status: ready --> <refentry id="function.extract"> <refnamediv> <refname>extract</refname> <refpurpose> Sætter variabler efter indholdet af et array </refpurpose> </refnamediv> <refsect1> <title>Beskrivelse</title> <methodsynopsis> <type>int</type><methodname>extract</methodname> <methodparam><type>array</type><parameter>var_array</parameter></methodparam> <methodparam choice="opt"><type>int</type><parameter>extract_type</parameter></methodparam> <methodparam choice="opt"><type>string</type><parameter>prefix</parameter></methodparam> </methodsynopsis> <para> Denne funktion bruges til at fremstille variabler fra et array. Den tager et associativ array <parameter>var_array</parameter> og behandler nøglerne som variablenavne og værdierne som de nye variablers værdier. For hvert nøgle/værdi par vil den lave en variable, alt efter hvad <parameter>extract_type</parameter> og <parameter>prefix</parameter> er sat til. </para> <note> <para> Vi starter ved version 4.0.5, hvor denne funktion returnerede antallet af variabler som blev udpakket. </para> </note> <note> <para> <constant>EXTR_IF_EXISTS</constant> og <constant>EXTR_PREFIX_IF_EXISTS</constant> blev tilføjet i version 4.2.0. </para> </note> <note> <para> <constant>EXTR_REFS</constant> blev tilføjet i version 4.3.0. </para> </note> <para> <function>extract</function> kontrollerer hver nøgle for at se om det er et korrekt variablenavn. Den tjekker også for om der allerede er sat en variable med det navn. Måden ukorrekte variablenavne og sammenfald med tidligere variabler skal behandles på, bestemmes ved parameteren <parameter>extract_type</parameter>. Den kan blive sat til en af følgende værdier: <variablelist> <varlistentry> <term><constant>EXTR_OVERWRITE</constant></term> <listitem> <simpara> Hvis der er et sammenfald, overskriv den eksisterende variable. </simpara> </listitem> </varlistentry> <varlistentry> <term><constant>EXTR_SKIP</constant></term> <listitem> <simpara> Hvis der er et sammenfald, overskriv ikke den eksisterende variable. </simpara> </listitem> </varlistentry> <varlistentry> <term><constant>EXTR_PREFIX_SAME</constant></term> <listitem> <simpara>Hvis der er et sammenfald, tilføj <parameter>prefix</parameter> foran variablenavnet. </simpara> </listitem> </varlistentry> <varlistentry> <term><constant>EXTR_PREFIX_ALL</constant></term> <listitem> <simpara> Start alle variabelnavne med <parameter>prefix</parameter>. I PHP 4.0.5 ville det også inklidere nummervariabler. </simpara> </listitem> </varlistentry> <varlistentry> <term><constant>EXTR_PREFIX_INVALID</constant></term> <listitem> <simpara> Indsæt kun <parameter>prefix</parameter> foran ukorrekte/nummer variabler. Denne mulighed blev tilføjet i PHP 4.0.5. </simpara> </listitem> </varlistentry> <varlistentry> <term><constant>EXTR_IF_EXISTS</constant></term> <listitem> <simpara> Overskriver kun variablen hvis den allerede findes og ellers skal den ikke gøre noget. Dette er brugbart ved definering af en liste af korrekte variablenavne og man derefter udpakker de variabler der er blevet sat med f.eks. $_REQUEST. Denne mulighed blev tilføjet i PHP 4.2.0. </simpara> </listitem> </varlistentry> <varlistentry> <term><constant>EXTR_PREFIX_IF_EXISTS</constant></term> <listitem> <simpara> Fremstiller kun variablenavne med prefix, hvis den orginale version af samme variable allerede findes. Denne mulighed blev tilføjet i PHP 4.2.0. </simpara> </listitem> </varlistentry> <varlistentry> <term><constant>EXTR_REFS</constant></term> <listitem> <simpara> Udpakker alle variabler som referencer. Det betyder at de nye variabler peger på de værdier der står i <parameter>var_array</parameter> parameteren. Du kan bruge denne indstilling som den eneste eller du kan sætte den sammen med andre værdier ved at indsætte OR mellem de to settings i <parameter>extract_type</parameter>. Denne indstilling blev muligt i PHP 4.3.0. </simpara> </listitem> </varlistentry> </variablelist> </para> <para> Hvis <parameter>extract_type</parameter> ikke er sat, vil den som som standard blive sat til <constant>EXTR_OVERWRITE</constant>. </para> <para> Bemærk at <parameter>prefix</parameter> kun er krævet hvis <parameter>extract_type</parameter> er <constant>EXTR_PREFIX_SAME</constant>, <constant>EXTR_PREFIX_ALL</constant>, <constant>EXTR_PREFIX_INVALID</constant> eller <constant>EXTR_PREFIX_IF_EXISTS</constant>. Hvis variabelnavnet med prefix foran, ikke er et korrekt variablenavn, vil den variable ikke blive oprettet. </para> <para> <function>extract</function> returnerer antallet af variabler der er blevet oprettet korrekt. </para> <warning> <para> Brug ikke <function>extract</function> ved usikker data som f.eks. bruger-input ($_GET, ...). Hvis du gør dette, f.eks. hvis du ønsker at køre gammel kode som ikke bruger <link linkend="security.globals">register_globals</link>, vær sikker på at du bruger en af de ikke overskrivende indstillinger <parameter>extract_type</parameter> kan sættes til, som f.eks. <constant>EXTR_SKIP</constant> og pas på hvis du udpakker <varname>$_SERVER</varname>, <varname>$_SESSION</varname>, <varname>$_COOKIE</varname>, <varname>$_POST</varname> og <varname>$_GET</varname> i den rækkefølge. </para> </warning> <para> Et eksempel hvor brugen af <function>extract</function> ville være perfekt, er ved et associativt array fra funktionen <function>wddx_deserialize</function>. </para> <para> <example> <title><function>extract</function> eksempel</title> <programlisting role="php"> <![CDATA[ <?php /* Gå ud fra at $var_array er et array returneret af wddx_deserialize */ $size = "large"; $var_array = array("color" => "blue", "size" => "medium", "shape" => "sphere"); extract($var_array, EXTR_PREFIX_SAME, "wddx"); echo "$color, $size, $shape, $wddx_size\n"; ?> ]]> </programlisting> <para> Overstående eksempel vil udskrive følgende: </para> <screen> <![CDATA[ blue, large, sphere, medium ]]> </screen> </example> </para> <para> Variablen <varname>$size</varname> blev ikke overskrevet, fordi vi havde sat <constant>EXTR_PREFIX_SAME</constant>, hvilket resultere i <varname>$wddx_size</varname> bliver lavet. Hvis <constant>EXTR_SKIP</constant> var bestemt, ville $wddx_size ikke engang blive lavet. <constant>EXTR_OVERWRITE</constant> ville have betydet at <varname>$size</varname> havde fået værdien "medium" og <constant>EXTR_PREFIX_ALL</constant> ville have betydet nye variablenavne kaldet <varname>$wddx_color</varname>, <varname>$wddx_size</varname> og <varname>$wddx_shape</varname>. </para> <para> Du skal bruge et associativt array. Et array indekseret med numre vil ikke komme med et resultat med mindre at du bruger <constant>EXTR_PREFIX_ALL</constant> eller <constant>EXTR_PREFIX_INVALID</constant>. </para> <para> Se også <function>compact</function>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->
http://cvs.php.net/co.php/phpdoc-da/reference/array/functions/each.xml?r=1.1&p=1 Index: phpdoc-da/reference/array/functions/each.xml +++ phpdoc-da/reference/array/functions/each.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <!-- EN-Revision: 1.15 Maintainer: lauer Status: ready --> <refentry id="function.each"> <refnamediv> <refname>each</refname> <refpurpose> Returnerer den aktuelle nøgle og værdi fra et array, og flytte den interne array pointer en plads frem </refpurpose> </refnamediv> <refsect1> <title>Beskrivelse</title> <methodsynopsis> <type>array</type><methodname>each</methodname> <methodparam><type>array</type><parameter>&array</parameter></methodparam> </methodsynopsis> <para> Returnerer den aktuelle nøgle og værdi fra arrayet <parameter>array</parameter> og flytter array pointeren en plads frem. Dette par er returneret i en array med 4 elementer. Med nøglerne <literal>0</literal>, <literal>1</literal>, <literal>key</literal> og <literal>value</literal>. Elementerne <literal>0</literal> and <literal>key</literal> indeholder navnet på nøglenværdien og <literal>1</literal> og <literal>value</literal> indeholder dataen. </para> <para> Hvis den interne pointer for arrayet peger efter den sidste element af arrayet, vil <function>each</function> returnere &false;. </para> <para> <example> <title><function>each</function> eksempel</title> <programlisting role="php"> <![CDATA[ <?php $foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese"); $bar = each($foo); print_r($bar); ?> ]]> </programlisting> <para> <varname>$bar</varname> indeholder nu følgende nægler/værdier: </para> <screen> <![CDATA[ Array ( [1] => bob [value] => bob [0] => 0 [key] => 0 ) ]]> </screen> </example> </para> <para> <informalexample> <programlisting role="php"> <![CDATA[ <?php $foo = array("Robert" => "Bob", "Seppo" => "Sepi"); $bar = each($foo); print_r($bar); ?> ]]> </programlisting> <para> <varname>$bar</varname> indeholder nu følgende nægler/værdier: </para> <screen> <![CDATA[ Array ( [1] => Bob [value] => Bob [0] => Robert [key] => Robert ) ]]> </screen> </informalexample> </para> <para> <function>each</function> bliver typisk brugt i forbindelse med <function>list</function> til at gå igennem et array. Her er et eksempel: <example> <title>Gennemgang af array med <function>each</function></title> <programlisting role="php"> <![CDATA[ <?php $fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry'); reset($fruit); while (list($key, $val) = each($fruit)) { echo "$key => $val\n"; } ?> ]]> </programlisting> <para> Viser: </para> <screen> <![CDATA[ a => apple b => banana c => cranberry ]]> </screen> </example> </para> <para> Efter at <function>each</function> er blevet udført, vil den interne array pointer peje på næste element eller efter det sidste element, hvis den rammer enden af arrayet. Du skal bruge <function>reset</function> hvis du gennemgå arrayet igen med each funktionen. </para> <caution> <para> Når man indsætter et nyt element i et array bliver array pointeren sat til det første element igen. Derfor vil vi i vores eksempel ovenfor have lavet en uendelig løkke, hvis vi havde tildelt en ny variable til <varname>$fruit</varname> inde i vores løkke. </para> </caution> <para> Se også <function>key</function>, <function>list</function>, <function>current</function>, <function>reset</function>, <function>next</function>, <function>prev</function> og <link linkend="control-structures.foreach">foreach</link>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/co.php/phpdoc-da/reference/array/functions/end.xml?r=1.1&p=1 Index: phpdoc-da/reference/array/functions/end.xml +++ phpdoc-da/reference/array/functions/end.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <!-- EN-Revision: 1.11 Maintainer: lauer Status: ready --> <refentry id="function.end"> <refnamediv> <refname>end</refname> <refpurpose> Sætte den interne pointer i et array til dets sidste element </refpurpose> </refnamediv> <refsect1> <title>Beskrivelse</title> <methodsynopsis> <type>mixed</type><methodname>end</methodname> <methodparam><type>array</type><parameter>&array</parameter></methodparam> </methodsynopsis> <para> <function>end</function> flytter <parameter>array</parameter>'s interne pointer til det sidste element i rækken og returnerer den værdi. </para> <para> <example> <title>Et simpelt eksempel med <function>end</function></title> <programlisting role="php"> <![CDATA[ <?php $fruits = array('apple', 'banana', 'cranberry'); echo end($fruits); // cranberry ?> ]]> </programlisting> </example> </para> <para> Se også <function>current</function>, <function>each</function>, <function>prev</function>, <function>next</function> og <function>reset</function>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/co.php/phpdoc-da/reference/array/functions/extract.xml?r=1.1&p=1 Index: phpdoc-da/reference/array/functions/extract.xml +++ phpdoc-da/reference/array/functions/extract.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <!-- EN-Revision: 1.17 Maintainer: lauer Status: ready --> <refentry id="function.extract"> <refnamediv> <refname>extract</refname> <refpurpose> Sætter variabler efter indholdet af et array </refpurpose> </refnamediv> <refsect1> <title>Beskrivelse</title> <methodsynopsis> <type>int</type><methodname>extract</methodname> <methodparam><type>array</type><parameter>var_array</parameter></methodparam> <methodparam choice="opt"><type>int</type><parameter>extract_type</parameter></methodparam> <methodparam choice="opt"><type>string</type><parameter>prefix</parameter></methodparam> </methodsynopsis> <para> Denne funktion bruges til at fremstille variabler fra et array. Den tager et associativ array <parameter>var_array</parameter> og behandler nøglerne som variablenavne og værdierne som de nye variablers værdier. For hvert nøgle/værdi par vil den lave en variable, alt efter hvad <parameter>extract_type</parameter> og <parameter>prefix</parameter> er sat til. </para> <note> <para> Vi starter ved version 4.0.5, hvor denne funktion returnerede antallet af variabler som blev udpakket. </para> </note> <note> <para> <constant>EXTR_IF_EXISTS</constant> og <constant>EXTR_PREFIX_IF_EXISTS</constant> blev tilføjet i version 4.2.0. </para> </note> <note> <para> <constant>EXTR_REFS</constant> blev tilføjet i version 4.3.0. </para> </note> <para> <function>extract</function> kontrollerer hver nøgle for at se om det er et korrekt variablenavn. Den tjekker også for om der allerede er sat en variable med det navn. Måden ukorrekte variablenavne og sammenfald med tidligere variabler skal behandles på, bestemmes ved parameteren <parameter>extract_type</parameter>. Den kan blive sat til en af følgende værdier: <variablelist> <varlistentry> <term><constant>EXTR_OVERWRITE</constant></term> <listitem> <simpara> Hvis der er et sammenfald, overskriv den eksisterende variable. </simpara> </listitem> </varlistentry> <varlistentry> <term><constant>EXTR_SKIP</constant></term> <listitem> <simpara> Hvis der er et sammenfald, overskriv ikke den eksisterende variable. </simpara> </listitem> </varlistentry> <varlistentry> <term><constant>EXTR_PREFIX_SAME</constant></term> <listitem> <simpara>Hvis der er et sammenfald, tilføj <parameter>prefix</parameter> foran variablenavnet. </simpara> </listitem> </varlistentry> <varlistentry> <term><constant>EXTR_PREFIX_ALL</constant></term> <listitem> <simpara> Start alle variabelnavne med <parameter>prefix</parameter>. I PHP 4.0.5 ville det også inklidere nummervariabler. </simpara> </listitem> </varlistentry> <varlistentry> <term><constant>EXTR_PREFIX_INVALID</constant></term> <listitem> <simpara> Indsæt kun <parameter>prefix</parameter> foran ukorrekte/nummer variabler. Denne mulighed blev tilføjet i PHP 4.0.5. </simpara> </listitem> </varlistentry> <varlistentry> <term><constant>EXTR_IF_EXISTS</constant></term> <listitem> <simpara> Overskriver kun variablen hvis den allerede findes og ellers skal den ikke gøre noget. Dette er brugbart ved definering af en liste af korrekte variablenavne og man derefter udpakker de variabler der er blevet sat med f.eks. $_REQUEST. Denne mulighed blev tilføjet i PHP 4.2.0. </simpara> </listitem> </varlistentry> <varlistentry> <term><constant>EXTR_PREFIX_IF_EXISTS</constant></term> <listitem> <simpara> Fremstiller kun variablenavne med prefix, hvis den orginale version af samme variable allerede findes. Denne mulighed blev tilføjet i PHP 4.2.0. </simpara> </listitem> </varlistentry> <varlistentry> <term><constant>EXTR_REFS</constant></term> <listitem> <simpara> Udpakker alle variabler som referencer. Det betyder at de nye variabler peger på de værdier der står i <parameter>var_array</parameter> parameteren. Du kan bruge denne indstilling som den eneste eller du kan sætte den sammen med andre værdier ved at indsætte OR mellem de to settings i <parameter>extract_type</parameter>. Denne indstilling blev muligt i PHP 4.3.0. </simpara> </listitem> </varlistentry> </variablelist> </para> <para> Hvis <parameter>extract_type</parameter> ikke er sat, vil den som som standard blive sat til <constant>EXTR_OVERWRITE</constant>. </para> <para> Bemærk at <parameter>prefix</parameter> kun er krævet hvis <parameter>extract_type</parameter> er <constant>EXTR_PREFIX_SAME</constant>, <constant>EXTR_PREFIX_ALL</constant>, <constant>EXTR_PREFIX_INVALID</constant> eller <constant>EXTR_PREFIX_IF_EXISTS</constant>. Hvis variabelnavnet med prefix foran, ikke er et korrekt variablenavn, vil den variable ikke blive oprettet. </para> <para> <function>extract</function> returnerer antallet af variabler der er blevet oprettet korrekt. </para> <warning> <para> Brug ikke <function>extract</function> ved usikker data som f.eks. bruger-input ($_GET, ...). Hvis du gør dette, f.eks. hvis du ønsker at køre gammel kode som ikke bruger <link linkend="security.globals">register_globals</link>, vær sikker på at du bruger en af de ikke overskrivende indstillinger <parameter>extract_type</parameter> kan sættes til, som f.eks. <constant>EXTR_SKIP</constant> og pas på hvis du udpakker <varname>$_SERVER</varname>, <varname>$_SESSION</varname>, <varname>$_COOKIE</varname>, <varname>$_POST</varname> og <varname>$_GET</varname> i den rækkefølge. </para> </warning> <para> Et eksempel hvor brugen af <function>extract</function> ville være perfekt, er ved et associativt array fra funktionen <function>wddx_deserialize</function>. </para> <para> <example> <title><function>extract</function> eksempel</title> <programlisting role="php"> <![CDATA[ <?php /* Gå ud fra at $var_array er et array returneret af wddx_deserialize */ $size = "large"; $var_array = array("color" => "blue", "size" => "medium", "shape" => "sphere"); extract($var_array, EXTR_PREFIX_SAME, "wddx"); echo "$color, $size, $shape, $wddx_size\n"; ?> ]]> </programlisting> <para> Overstående eksempel vil udskrive følgende: </para> <screen> <![CDATA[ blue, large, sphere, medium ]]> </screen> </example> </para> <para> Variablen <varname>$size</varname> blev ikke overskrevet, fordi vi havde sat <constant>EXTR_PREFIX_SAME</constant>, hvilket resultere i <varname>$wddx_size</varname> bliver lavet. Hvis <constant>EXTR_SKIP</constant> var bestemt, ville $wddx_size ikke engang blive lavet. <constant>EXTR_OVERWRITE</constant> ville have betydet at <varname>$size</varname> havde fået værdien "medium" og <constant>EXTR_PREFIX_ALL</constant> ville have betydet nye variablenavne kaldet <varname>$wddx_color</varname>, <varname>$wddx_size</varname> og <varname>$wddx_shape</varname>. </para> <para> Du skal bruge et associativt array. Et array indekseret med numre vil ikke komme med et resultat med mindre at du bruger <constant>EXTR_PREFIX_ALL</constant> eller <constant>EXTR_PREFIX_INVALID</constant>. </para> <para> Se også <function>compact</function>. </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->