array_map ile Bir Diziye Birden Fazla Fonksiyon Uygulama Versiyon 2.10

soulmy php 27.Haz.2013 35 görüntülenme 0 yorum

Diyelim bir dizimiz var ve bu dizideki tüm değerleri bir fonksiyondan geçirmemiz gerekiyor. Böyle bir işlemi döngülerle yapabiliriz fakat array_map ile bunu yapmak çok daha pratik. Mesela GET ile gelen tüm verileri trim() fonksiyonundan geçirmek istersek;

$_GET = array_map('trim',$_GET);

şeklinde yapabiliriz. Gördüğünüz gibi $_GET değişkenindeki tüm değerleri trim() fonksiyonundan geçirdik ve dönen değerleri ise tekrardan $_GET fonksiyonuna eşitledik.

En sade kullanım şekli bu şekilde. Peki bir diziyi birden fazla fonksiyondan geçirmek istersek ne yapacağız? Bunun için öncelikle yeni bir fonksiyon yaratmamız gerekiyor:

function filter($text) {
      return htmlspecialchars(strip_tags(trim($text))); 
}

filter adında bir fonksiyon yarattık. Bu fonksiyonla, $text değişkenindeki değeri sırasıyla trim, strip_tags(), htmlspecialchars() fonksiyonlarından geçirip, çıkan sonucu döndürdük.

Bundan sonra ise array_map ile filter fonksiyonunda geçirmemiz gerekiyor:

function filter($text) {
      return htmlspecialchars(strip_tags(trim($text))); 
}

$_GET = array_map('filter',$_GET);
$_POST = array_map('filter',$_POST);

Yorumlar

Bu yazıya yorum yapan ilk kişi sen ol.