Php’de değişken fonksiyonları yaratmak
Bugünde basit ama yararlı bir konu ele alalım. Php 'de 4.0.1 'den sonra değişkenlere fonksiyon atayabiliyorsunuz. Bu işlem için create_function() fonksiyonunu kullanabilirsiniz. Basit bir örnekle başlayalım:
-
$carpim_yazdir(5,2);
create_function 'ı eval 'e benzetebilirsiniz. Yanlız unutmayın create_function bir fonksiyonken eval bir dil yapısıdır. Belki create_function ile neler yapabileceğinizi gözünüzde canlandıramadıysanız daha komplek bir örnek vereyim.
-
$arama = create_function('$anahtar,$array,&$bul','global $bul; foreach ($array as $key => $value) { if (str_pos($value,$anahtar)!==false) $bul[] = $value; }');
-
'Php ile hayatınızı kolaylaştırın.',
-
'Asp nedir bizi ilgilendirmez.',
-
'Ama perli de severiz.' );
-
-
function bul_yazdir($ara,$anahtar,$arama_fonksiyonu) {
-
$arama_fonksiyonu($anahtar,$ara,$bul);
-
foreach ($bul as $value) {
-
}
-
}
-
-
bul_yazdir($ara,'Php',$arama);
Burda basit bir arama fonksiyonu yazdım, altına da basit normal bir fonksiyon koydum ki farkı görün. Değişken fonksiyonların iyi tarafı bu fonksiyonları serialize edip oturumda veya bir dosyada saklayabilir ve daha sonra tekrar kullanabilirsiniz. Bir diğer kullanımı da callback (geri çağırım) fonksiyonları ile kullanmaktır. Buna da bir örnek verelim çünkü bu kullanım çok önemlidir. Yukarıdaki betiğin callback ile yazılmış halini aşağıda görelim:
-
$anahtar = 'Php';
-
'Php ile hayatınızı kolaylaştırın.',
-
'Asp nedir bizi ilgilendirmez.',
-
'Ama perli de severiz.' );
-
$arama = create_function('&$deger,$indeks', 'global $anahtar; if (strpos($deger,$anahtar)) {global $bul; $bul[] = $deger; }');
-
$ara_ve_yazdir = create_function('&$deger,$indeks', 'global $anahtar; if (strpos($deger,$anahtar)) echo $deger.'<br />'; ');
-
Kafanızda ampüllerin yandığını düşünerek bu konuyu burada noktalıyorum. Değişik örnekler aklınıza gelirse bu konunun altına yorum olarak ekleyebilirsiniz.
Yazdır
| 774 Görüntülenme | Kategori: PHP |
Geri İzleme
Etiketler: callback, create-function, fonksiyon, geri çağırma, değişken fonksiyonlarBenzer Yazılar
Yorum Yap
XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

1 Ekim 2007 |

3 kez puan verildi, Ortalama: 4 (5 üzerinden)

