cvs: phpdoc-da /reference/array/functions each.xml end.xml extract.xml
[email protected] ("Jesper Laursen") Sun, 10 Oct 2004 09:17:36 -0000
| Newsgroups | php.doc.da |
|---|---|
| Message-ID | <cvslauer1097399856@cvsserver> |
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
lauer-20041010051736.txt
(text/plain, 14.8 KB)
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
-->