mirror of
https://github.com/php/doc-pl.git
synced 2026-03-29 10:32:12 +02:00
git-svn-id: https://svn.php.net/repository/phpdoc/pl/trunk@314597 c90b9560-bf6c-de11-be94-00142212c4b1
238 lines
8.3 KiB
XML
238 lines
8.3 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!-- EN-Revision: n/a Maintainer: leszek Status: ready -->
|
|
<!-- $Revision$ -->
|
|
<refentry xml:id="function.extract" xmlns="http://docbook.org/ns/docbook">
|
|
<refnamediv>
|
|
<refname>extract</refname>
|
|
<refpurpose>Importuj zmienne do bieżącej tablicy symboli z tablicy</refpurpose>
|
|
</refnamediv>
|
|
<refsect1>
|
|
<title>Opis</title>
|
|
<methodsynopsis>
|
|
<type>int</type><methodname>extract</methodname>
|
|
<methodparam><type>array</type><parameter>tablica_zmiennych</parameter></methodparam>
|
|
<methodparam choice="opt"><type>int</type><parameter>typ_ekstrakcji</parameter></methodparam>
|
|
<methodparam choice="opt"><type>string</type><parameter>prefiks</parameter></methodparam>
|
|
</methodsynopsis>
|
|
<para>
|
|
Ta funkcja służy do importowania zmiennych z tablicy do bieżącej tablicy
|
|
symboli. Pobiera jako parametr tablicę asocjacyjną
|
|
<parameter>tablica_zmiennych</parameter> i traktuje klucze jako nazwy
|
|
zmiennych a wartości jako wartości tych zmiennych. Dla każdej pary
|
|
klucz/wartość w bieżącej tablicy symboli będzie stworzona zmienna, zależna
|
|
od parametrów <parameter>typ_ekstrakcji</parameter> i
|
|
<parameter>prefiks</parameter>.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
Od wersji 4.0.5 ta funkcja zwraca liczbę wyekstrahowanych zmiennych.
|
|
</para>
|
|
</note>
|
|
<note>
|
|
<para>
|
|
Stałe <constant>EXTR_IF_EXISTS</constant> i
|
|
<constant>EXTR_PREFIX_IF_EXISTS</constant> zostały dodane w PHP 4.2.0.
|
|
</para>
|
|
</note>
|
|
<note>
|
|
<para>
|
|
Stała <constant>EXTR_REFS</constant> została dodana w PHP 4.3.0.
|
|
</para>
|
|
</note>
|
|
<para>
|
|
<function>extract</function> sprawdza każdy klucz aby sprawdzić, czy
|
|
zawiera prawidłową nazwę zmiennej a także czy istnieją kolizje z
|
|
zmiennymi istniejącymi w tablicy symboli. Sposób traktowania złych nazw
|
|
zmiennych i kolizji jest określony przez parametr
|
|
<parameter>typ_ekstrakcji</parameter>. Może być jedną z poniższych
|
|
wartości:
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><constant>EXTR_OVERWRITE</constant></term>
|
|
<listitem>
|
|
<simpara>
|
|
Jeśli istnieje kolizja, nadpisz istniejącą zmienną.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><constant>EXTR_SKIP</constant></term>
|
|
<listitem>
|
|
<simpara>
|
|
Jeśli istnieje kolizja, nie nadpisuj istniejącej zmiennej.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><constant>EXTR_PREFIX_SAME</constant></term>
|
|
<listitem>
|
|
<simpara>
|
|
Jeśli istnieje kolizja, na początek nazwy zmiennej wstaw
|
|
<parameter>prefiks</parameter>.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><constant>EXTR_PREFIX_ALL</constant></term>
|
|
<listitem>
|
|
<simpara>
|
|
Na początek każdej nazwy zmiennej wstaw <parameter>prefiks</parameter>.
|
|
Od PHP 4.0.5 dotyczy to także nazw numerycznych.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><constant>EXTR_PREFIX_INVALID</constant></term>
|
|
<listitem>
|
|
<simpara>
|
|
Wstaw <parameter>prefiks</parameter> na początek złych/numerycznych
|
|
nazw. Ta flaga została dodana w PHP 4.0.5.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><constant>EXTR_IF_EXISTS</constant></term>
|
|
<listitem>
|
|
<simpara>
|
|
Nadpisz tylko zmienną już istniejącą w bieżącej tablicy symboli. Jest
|
|
to przydatne do definiowania listy poprawnych zmiennych i ekstrahuj
|
|
tylko te zmienne które zdefiniowano na przykład w $_REQUEST. Flaga ta
|
|
została dodana w PHP 4.2.0.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><constant>EXTR_PREFIX_IF_EXISTS</constant></term>
|
|
<listitem>
|
|
<simpara>
|
|
Przedrostek zostanie dodany tylko do zmiennych których odpowiedniki
|
|
bez przedrostka już istnieją w bieżącej tablicy symboli. Flaga ta
|
|
została dodana w PHP 4.2.0.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><constant>EXTR_REFS</constant></term>
|
|
<listitem>
|
|
<simpara>
|
|
Ekstraktuje zmienne jako referencje. Oznacza to, że wartości
|
|
zaimportowanych zmiennych ciągle odnoszą się do wartości parametru
|
|
<parameter>tablica_zmiennych</parameter>. Flaga ta może być użyta
|
|
sama lub w połączaniu z innymi flagami poprzez użycie operacji OR na
|
|
parametrze <parameter>typ_ekstrakcji</parameter>. Została ona dodana
|
|
w PHP 4.3.0.
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
<para>
|
|
Jeśli <parameter>typ_ekstrakcji</parameter> nie został podany, to
|
|
zakładana jest opcja <constant>EXTR_OVERWRITE</constant>.
|
|
</para>
|
|
<para>
|
|
Zauważ, że parametr <parameter>prefiks</parameter> jest wymagany tylko
|
|
jeśli <parameter>typ_ekstrakcji</parameter> to
|
|
<constant>EXTR_PREFIX_SAME</constant>,
|
|
<constant>EXTR_PREFIX_ALL</constant>,
|
|
<constant>EXTR_PREFIX_INVALID</constant> lub
|
|
<constant>EXTR_PREFIX_IF_EXISTS</constant>. Jeśli nazwa zmiennej po
|
|
dodaniu prefiksu nie jest prawidłową nazwą zmiennej, nie jest
|
|
importowana do tablicy symboli. Prefiksy są automatycznie oddzielane od
|
|
kluczy tablicy poprzez znak "_".
|
|
</para>
|
|
<para>
|
|
<function>extract</function> zwraca liczbę zmiennych szczęśliwie
|
|
zaimportowanych do tablicy symboli.
|
|
</para>
|
|
<warning>
|
|
<para>
|
|
Nie należy używać funkcji <function>extract</function> na niepewnych
|
|
danych, jak na przykład danych odebranych od użytkownika ($_GET, ...).
|
|
Można tak zrobić na przykład w celu tymczasowego uruchomienia starych
|
|
skryptów, które zależne są od ustawienia <link
|
|
linkend="security.globals">register_globals</link>. Należy jednak użyć
|
|
nie nadpisującego parametru <parameter>typ_ekstrakcji</parameter>, jak
|
|
na przykład <constant>EXTR_SKIP</constant>. Trzeba też pamiętać aby
|
|
ekstrahować zmienne w kolejności określonej przez opcję <link
|
|
linkend="ini.variables-order">variables_order</link> pliku <link
|
|
linkend="ini">&php.ini;</link>.
|
|
</para>
|
|
</warning>
|
|
<para>
|
|
Możliwa jest ekstrakcja zmiennych zawartych w tablicy asocjacyjnej zwróconej
|
|
przez <function>wddx_deserialize</function>.
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>Przykład użycia <function>extract</function></title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
|
|
/* Załóżmy, że $tablica_zmiennych jest tablicą zwróconą przez
|
|
wddx_deserialize */
|
|
|
|
$rozmiar = "duży";
|
|
$tablica_zmiennych = array("kolor" => "niebieski",
|
|
"rozmiar" => "średni",
|
|
"ksztalt" => "kulisty");
|
|
extract($tablica_zmiennych, EXTR_PREFIX_SAME, "wddx");
|
|
|
|
echo "$kolor, $rozmiar, $ksztalt, $wddx_rozmiar\n";
|
|
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
<screen>
|
|
<![CDATA[
|
|
niebieski, duży, kulisty, średni
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<varname>$rozmiar</varname> nie został nadpisany, ponieważ podany został
|
|
parametr <constant>EXTR_PREFIX_SAME</constant>, przez co stworzona został
|
|
zmienna <varname>$wddx_rozmiar</varname>. Jeśli podana by była flaga
|
|
<constant>EXTR_SKIP</constant>, to zmienna
|
|
<varname>$wddx_rozmiar</varname> nie zostałaby stworzona. Flaga
|
|
<constant>EXTR_OVERWRITE</constant> spowodowałaby, że zmienna
|
|
<varname>$rozmiar</varname> miałaby wartość "średni", a
|
|
<constant>EXTR_PREFIX_ALL</constant> spowodowałaby że wszystkie nowe
|
|
zmienne zostałyby nazwane <varname>$wddx_kolor</varname>,
|
|
<varname>$wddx_rozmiar</varname>, and <varname>$wddx_ksztalt</varname>.
|
|
</para>
|
|
<para>
|
|
Musisz użyć tablic asocjacyjnych. Tablica indeksowana liczbowo nie da
|
|
żadnych efektów, chyba że zostanie użyta flaga
|
|
<constant>EXTR_PREFIX_ALL</constant> lub
|
|
<constant>EXTR_PREFIX_INVALID</constant>.
|
|
</para>
|
|
<para>
|
|
Patrz także: <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:"~/.phpdoc/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
|
|
-->
|