(PHP 4, PHP 5, PHP 7, PHP 8)
extract — Bir dizideki değişkenleri simge tablosuna dahil eder
Bir dizideki değişkenleri simge tablosuna dahil eder.
Her anahtarın geçerli bir değişken adı olup olmadığına bakmaktan başka bu değişkenlerin simge tablosundakilerle çakışıp çakışmadığına da bakar.
dizi
Bir ilişkisel dizi. Bu işlev anahtarları değişken ismi, değerleri de
değişkenin değeri olarak değerlendirir. Her anahtar/değer çifti için
simge tablosunda seçenekler ve
önek'e uygun bir değişken oluşturulur.
EXTR_PREFIX_ALL veya
EXTR_PREFIX_INVALID kullanmadıkça bir sayısal
indisli dizi sonuç üretmeyeceğinden bir ilişkisel dizi kullanmanız
gerekir.
seçeneklerGeçersiz veya sayısal anahtarların ve çakışmaların ele alınma yöntemini belirtmek için kullanılır. Aşağıdaki değerlerden biri olmalıdır:
EXTR_OVERWRITEBir çakışma varsa mevcut değişkenin üzerine yazılır.
EXTR_SKIPBir çakışma varsa mevcut değişkenin üzerine yazılmaz.
EXTR_PREFIX_SAMEBir çakışma varsa değişken isminin başına
önek konur.
EXTR_PREFIX_ALL
Tüm değişken isimlerinin başına önek konur.
EXTR_PREFIX_INVALID
Sadece geçersiz veya sayısal indisli değişkerlerin başına
önek konur.
EXTR_IF_EXISTSSadece simge tablosunda mevcut değişkenlerin üzerine yazılır, bunun dışında bir şey yapılmaz. Geçerli değişkenleri bir liste halinde tanımladıktan sonra bunlardan sadece örneğin $_REQUEST dışında tanımlanmış olanlarını çıkarmak için yararlıdır.
EXTR_PREFIX_IF_EXISTSSadece simge tablosunda öneksiz sürümü bulunan değişkenlerin önekli sürümleri oluşturulur.
EXTR_REFS
Değişkenler gönderimli olarak çıkarılır. Dahil edilen değişkenler
dizi değerlerine gönderimli iseler bu
anlamlıdır. Bu seçeneği tek başına ya da VEYAlamak suretiyle başka
bir seçenekle birlikte kullanabilirsiniz.
seçenekler belirtilmezse
EXTR_OVERWRITE belirtilmiş sayılır.
önek
Bu bağımsız değişken sadece seçenekler olarak
EXTR_PREFIX_SAME,
EXTR_PREFIX_ALL,
EXTR_PREFIX_INVALID
veya EXTR_PREFIX_IF_EXISTS belirtilmişse
anlamlıdır. Önekli bir sonuç geçerli bir değişken ismi oluşturmuyorsa
simge tablosuna dahil edilmez. Önekler dizi anahtarlarından otomatik
olarak bir altçizgi karakteri ile ayrılırlar.
Simge tablosuna başarıyla eklenen değişkenlerin sayısı.
Örnek 1 - extract() örneği
extract() işlevinin olası kullanımlarınadn biri de wddx_deserialize() tarafından döndürülen ilişkisel dizi içeriğinin simge tablosuna dahil edilmesidir.
<?php
/* Dizinin wddx_deserialize tarafından döndürülen
bir dizi olduğunu varsayalım */
$boyut = "büyük";
$dizi = array(
"renk" => "mavi",
"boyut" => "orta",
"şekil" => "küre");
extract($dizi, EXTR_PREFIX_SAME, "wddx");
echo "$renk, $boyut, $şekil, $wddx_boyut\n";
?>Yukarıdaki örneğin çıktısı:
mavi, büyük, küre, orta
$wddx_boyut değişkeninin oluşturulmasını sağlayan
EXTR_PREFIX_SAME seçeneğini belirttiğimizden
$boyut değişkeninin üzerine yazılmaz. Eğer seçenek
olarak EXTR_SKIP belirtmiş olsaydık
$wddx_boyut değişkeni oluşturulmazdı.
EXTR_OVERWRITE belirtseydik,
$size "orta" değerine sahip olacaktı. Eğer
EXTR_PREFIX_ALL belirtmiş olsaydık
$wddx_renk,
$wddx_boyut ve
$wddx_şekil değişkenlerini oluşturmuş olurduk.
extract() işlevini kullanıcı girdisi
($_GET, $_FILES, vb.) gibi güvenilmez
veriler üzerinde kullanmayın. Aksi takdirde, EXTR_SKIP
gibi üste yazmayan seçenekler değerlerini kullanmaya
ve php.ini dosyasındaki
variables_order yönergesinde
tanımlı sırada çıkartmaya çalışın.