(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çenekler
Geç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_OVERWRITE
EXTR_SKIP
EXTR_PREFIX_SAME
önek
konur. EXTR_PREFIX_ALL
önek
konur. EXTR_PREFIX_INVALID
önek
konur. EXTR_IF_EXISTS
EXTR_PREFIX_IF_EXISTS
EXTR_REFS
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
$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.