Extract
Ceviz Viki sitesinden
<?php
extract($dizi, $cikarim_sekli, $onek);
?>
Tarzında kullanılan bir işlevdir, bir dizideki değerleri ayrı bir değişken olarak atamamıza ya da bu değişkenin geçerli olup olmadığına bakmamıza yarar.Örnek olarak, hep beraber şöyle bir uygulama yapalım:
<?php
if($_GET) { //GET ile gelen bir paket var mı kontrol ediyoruz.
extract($_GET); //cikarim sekli ve ön ek belirtilmediğinden, ön ek olmadan ve default olarak atanmış olan EXTR_OVERWRITE yöntemiyle çıkar.
if($onay && $adi && $soyadi) { //Formda onay butonuna basılmış mı bir de istenilen bilgiler var mı kontrol ediyoruz.
echo "<b>Adi:</b>$adi<br /><b>Soyadi:</b>$soyadi";
}
}
else {
print <<<END
<form name="ornek">
<input type="text" value="Adiniz" name="adi" />
<input type="text" value="Soyadiniz" name="soyadi" />
<input type="submit" value="Onay" name="onay />
</form>
END;
}
?>
Yukarıdaki kullanımın faydalarından biri ölümle sonuclanan bütün POST ya da GET paketlerini ayrı ayrı değişkenlere atama işleminden bizleri kurtarması. Şimdi extract(); işlevimizi bir de mysql ile beraber kullanalım:
<?php
/* Veri tabanımıza bağlanıyoruz */
$baglan = mysql_connect("localhost","kullanici","sifre");
if (!$baglan) die ("MySQL'a Bağlanılamıyor!");
mysql_select_db("db", $baglan);
/* Baglandık. */
$sorgu = mysql_query("SELECT * FROM tablo"); // "tablo"muzdan bütün sütunları çekiyoruz
while($arr = mysql_fetch_array($sorgu)) { // Ne kadar $arr = mysql_fetch_array($sorgu) varsa (:
extract($arr); //Her $arr isimli arraydeki degerleri değişken yapıyoruz.
echo $uye_adi."<br />"; //uye_adi adlı sütundaki bütün değerleri döndürüyoruz.
}
?>
Bu sefer, extract fonksiyonu ile atadığımız değişkenlere bir ön ek getirelim ki daha önceden aynı isimde bir değişken da atadıysak bize sorun çıkarmasın:
<?php
$a = 'Ben ('; //Orjinal değer, daha önceden atadığımız olan (:
$sexiest_men_alive = array("a" => "Hugh Jackman","b" => "Jon Hamm", "c" => "Robert Buckley");
extract($sexiest_men_alive, EXTR_PREFIX_SAME, 'extract'); //EXTR_PREFIX_SAME olayı, eğer değişken daha önceden belirlenmiş ise, yeni değişkene bir ön ek getirir.
echo "1 = $a; 2 = $b; 3 = $c; 4 = $extract_a;"; // 1 = Ben (; 2=John Hamm; 3=Robert Buckley; 4=Hugh Jackman; yazdırır.
/* Böylelikle Wikimize PHP ile alakasız 3 keyword daha kazandırmışta olduk (: */
?>
Ayrıntılı içerik tabii ki: PHP Manual