24 Haziran 2016 Cuma

Php'de Fonksiyon Kavramı ve Kategorilere Göre PHP Fonksiyonları

Fonksiyon Kavramı ve Kategorilere Göre PHP
Fonksiyonları
Fonksiyonlar bir kod blokunu otomatik olarak yazmak
üzere tasarlanmıĢ program parçacıklardır. Bir dilin
fonksiyon sayısının fazla olması yanında bunların iyi
organize edilmiĢ olmasıda önemlidir. Programlama
dillerinde normalde fonksiyonlar derleyici içine kodlanmıĢ
olurdu.
Ġlk olarak PASCAL dili ile bir yenilik geldi. Dilin sadece
sintaks yapısını tanımlayıp fonksiyonları harici
kütüphanelerden kullanmak. Böylece dillerin komut
setlerini geniletme olanağı getirilmiĢ oldu. Örneğin dilin
kendisinde olmayan bir fonksiyonu kendiniz yazıp bunu
PHP nin içinde hep varmıĢ gibi kullanabiliriz.
Çağrılan bir fonksiyon ya kendisinden beklenen iĢi yapar,
ya da kendisini çağıran iĢleme veya fonksiyona bir değer
sunar. Buna fonksiyondan dönen değer denir. Örneğin
bir dosyanın var olup olmadını test eden bir fonksiyon
yazdığımızı düĢünelim, dönen sonuç TRUE ise dosyanın
zaten var olduğunu gösterecek Ģekilde kodlayabiliriz.
False ise dosya yok anlamına gelecektir. (iĢin aslı bu
fonksiyonu yazmamıza gerek yoktur çünkü PHP dilinde
bu iĢi yapan hazır bir fonksiyon zaten vardır).
Fonksiyonları çeĢitli baĢlıklarda ele alacağız.
 DeğiĢkenlerle iĢlem yapan fonksiyonlar
 Program kodunu durduruma fonksiyonları
 Tarih Zaman bilgisiyle iĢlem yapan fonksiyonlar
 Matematiksel fonksiyonlar
Metin ĠĢleme fonksiyonları
 Veri ġifreleme fonksiyonları
 Düzenli Ġfade (Regular expressions) fonksiyonları
 Uzantı yönetimi
 Kendi fonksiyonlarımızı yazmak
 Kendisini çağıran, değiĢken, ve geri çağırımlı
fonksiyonlar
DeğiĢkenlerle ĠĢlem Yapan Fonksiyonlar
PHP dilinde değiĢkenler istenildiği anda
tanımlanabilmektedir. Öte yanda PHP dilinin büyük küçük
harf ayrımı yapmasada değiĢken tanımlanırken dikkatli
olunmasını gerektirir. Yine aynı Ģekilde eğer çok büyük
dizilerle çalıĢıyorsak bu dizilerin iĢi bitince hafızadan
atılması gerekir ki web sunucu hafıza boĢ yere dolup hızı
düĢmesin.
isset() fonksiyonu (değiĢkene değer atanmıĢ mı kontrol
etmek)
isset() fonksiyonu, PHP'nin bir değiĢkenin içinde değer
bulunup bulunmadığını kontrol etmesini sağlar. Eğer geri
dönen değer true ise bu değiĢkene bir değer atanmıĢ
demektir.
<?php
if (isset($sayi)) {
print( $sayi );
}
else {
print (―sayi degiskeni bir değer içermiyor‖);
}
?>
unset() fonksiyonu (değiĢkeni hafızadan atmak-yok
etmek)
unset() fonksiyonu varolan bir değiĢkeni yok eder.
Böylece bu değiĢkenin kullandığı alan boĢ hafıza
miktarına eklenir. Ġyi bir programlamada unset() ile
değiĢkenler yok edilmelidir. Çünkü bu web sunucuya
büyük rahatlık getirecektir.
<?php
if (isset($sayi)) {
echo ( $sayi );
}
else {
unset($sayi);
}
?>
empty() (DeğiĢken boĢmu)
Bu fonksiyon isset() fonksiyonunun tersidir. AĢağıdaki
Ģartlar oluĢursa true değer dönderir aksi tatirde ise false
sonuç üretmektedir.
 Bir değiĢkene henüz değer atanmamıĢsa
Değeri sıfır ise
 DeğiĢken ―‖ yani boĢ alfanümerik (null string) ise
empty() fonksiyonu true sonuç üretmektedir.
<?
$sayi = 10;
echo empty($sayi); // 0 azacak sayı boĢ değil 10
$isim = ""; // 1 yazacak isim boĢ
echo empty($isim);
?>
is_string(), is_integer(), is_double() fonksiyonları ile tip
tespiti
Parametreleri olan değiĢkenin tipine göre true yada false
sonuç dönderirler. is_string string tipi, is_integer()
tamsayılar ve is_double fonksiyonuda ondalıklı sayılar
için true değer üretir.
<?php
$a = 3.14;
//$a = ―Ali‖; // burası Ģimdilik yorum satırı
//$a = 14; // burası Ģimdilik yorum satırı
if (is_double($a)) {
print ("A ondalıklı sayıdır<br>");
}
if (is_string ($a)) {
print ("A String'dir<br>");
}
if (is_integer($a)) {
print ("A tamsayıdır<br>");
}
?>
Bu kod, tarayıcı penceresine değiĢkeni tipine göre ilgili
print ile tanımlanan metni yazdıracaktır. Bu program
parçası Browser penceresine sadece empty()
fonksiyonun doğru sonuç verdiği birinci echo() deyiminde
1 yazdıracaktır.
is_array() ve is_object fonksiyonları ise sırasıyla
değiĢkenin tipi dizi yada nesne ise true değer üretirler.
Burada bu konu hakkında detaya girilmeyecektir.
Bu fonksiyonları tümü ilerde göreceğimiz Kullanıcı
Verilerini Doğrulama konusunda iĢe yarayacaktır.
Örneğin kullanıcıya maaĢını soran bir kutucuğa kullanıcı
―bin ytl‖ yazarsa, doru yazması konusunda uyarılarda
bulunmak üzere yapaılacak kontrollerde bu
fonksiyonlardan yararlanılacaktır.
print_r () fonksiyonu
Bu fonksiyon parametre olarak aldığı değiĢken ve içeriği
hakkında bilgi verir. Bu değiĢken bir dizi ise dizinin
elemanlarıda buna dahildir.
<?php
$abc=456;
print_r($abc);
?>
Bu fonksiyon diziler konusunda daha detaylı
örneklenecektir.
DeğiĢken Tiplerini DönüĢtürme ve DeğiĢken Tipini
Öğrenme
PHP dili ile bir değiĢkenin değerini referans alarak baĢka
tipte yeni bir değiĢken tanımlamak mümkündür. Bir
değiĢkenin doğrudan doğruya kendisinin tipini değiĢtirme
iĢlemi ise settype fonksiyonu yapılır. Settype sonraki
konularda incelenecektir. AĢağıdaki kod ile type-casting
iĢlemi yapılarak yeni bir değiĢken tanımlanmıĢtır.
<?php
$ad = "Ġbrahim";
$sayi = (integer)$ad;
echo $sayi;
?>
Önce bir string değiĢken tanımlanmıĢ daha sonra ise bu
değiĢken referans alınarak sayi adında tamsayı bir
değiĢken dönüĢümü yapılmıĢtır. Burada dönüĢüm
ifadeleri olarak
 DeğiĢkenin tipinin mantıksal olması için BOOL
 DeğiĢkenin tipinin alfanümerik olması için STRING
DeğiĢkenin tipinin tamsayı olması için INTEGER
 DeğiĢkenin tipinin ondalıklı sayı olması için FLOAT
ifadeleri kullanılabilir.
Metin değiĢkenleri çevirirken çok dikkat etmek gereklidir.
Metin ifadeler sayıya çevirilirken baĢında sayı varsa
bunlar alınır, geri kalanlar yoksayılır. Eğer değiĢken sayı
ile baĢlamıyor ise çevrim sonucu 0 kabul edilir. Örneğin
yukardaki örnek kod 0 değerini verecektir.
gettype() fonksiyonu (DeğiĢken tipini alma)
Bir değiĢkenin değerinin türü hakkında bilgi almak için bu
fonksiyon kullanılabilir.
<?php
$sayi1 = 101;
print("Birinci değiĢkenin adı: \$sayi1<br>");
print("Değeri : "); print "$sayi1<br>";
print("Türü : "); print gettype( $sayi1 ) ;
//tamsayi/integer
print "<br>"; print "<br>";
$str1k = "Tuncay";
print "Ġkinci değiĢkenin adı: \$str1<br>";
print "Değeri : "; print "$str1<br>";
print("Türü : "); print gettype( $str1 ) ;
//alfanümerik/string
print "<br>"; print "<br>";
$pi = 3,14;
print "Üçüncü değiĢkenin adı: \$pi<br>";
print "Değeri : "; print "$pi<br>";
print("Türü : "); print gettype( $pi ) ;
//çift,ondalık sayı/double
print "<br>"; print "<br>";
$logical = true;
print "Üçüncü değiĢkenin adı: \$logical<br>";
print "Değeri : "; print "$logical<br>";
print("Türü : "); print gettype( $logical ) ;
//mantıksal/boolean
print "<br>"; print "<br>";
?>
PHP için mantıksal olarak doğru anlamına gelen True
Değeri 1 olarak varsayılmaktadır. PHP'de bir fonksiyon,
elde ettiği değer doğru ise sonuç olarak 1 değerini verir.
settype() fonksiyonu (değiĢekene bir tip atama)
Bu fonksiyon bir değiĢkenin kendisinin tipini değiĢtirmeye
imkan verir. Ancak dönüĢüm iĢlemi istemeyen
sonuçlarda üretebilir. Bu bakımdan değiĢkenlerin
değerlerine dikkat etmek gerekir.
http://alikoker.name.tr
HTML-CSS–PHP–MYSQL ve SQL Derleme : Ġbrahim Halil Kutluay- 2007-2013
244
<?php
$pi = 3.14;
print("DeğiĢkenin değeri : "); print "$pi<br>";
print("Türü : "); print gettype( $pi )
; //çift,ondalık/double
print "<br>"; print "<br>";
print "değiĢtirme iĢlemi:<br>";
settype( $pi, string ); //alfanümerik/string
print "Değeri : "; print "$pi<br>";
print "<br>"; print "<br>";
?>
Bu programı çalıĢtırdığımızda, ilk atadığımız değerin
ondalık bir sayıdır. Bu değerin türünü alfanümerik/string
olarak değiĢtirdiğimizde içeriğim korunduğunu
görüyoruz. Fakat tamsayıya döndürme iĢlemi yapılsaydı
PHP değerin tamsayı bölümünü alıp, ondalıklı kısmını
atacaktır. Daha sonra bu tamsayı değiken yeniden
ondalıklı sayıya çevrilese bile bu ondalık kısmı ilk
değeriyle elde etmek mümkün değildir. Mantıksala
dönüĢüm yapılır ise içeriği 0 olmayan tüm değerler True
olarak geri döner. 0 olanlar içinse False değerini verir.
 Ondalık sayılar tamsayıya çevrilirken ondalık kısmı
atılır (3.14 –>3)
http://alikoker.name.tr
HTML-CSS–PHP–MYSQL ve SQL Derleme : Ġbrahim Halil Kutluay- 2007-2013
245
 Tamsayılar ondalık sayıya çevrilirken .00 ondalık
eki getirilir. (3->3.00)
 Bir ondalıklı sayı tamsayıya çevrildikten sonra
tekrar ondalıklı sayıya çevrilse bile ilk ondalıklı
kısım geri getirilemez
 Boolean tipe çevrilen ve 0 ve null dıĢında bir değer
içeren tüm değerler true olarak dönerler.
<?
$dene=‖selam‖;
$bul=true;
$son=2000;
echo gettype($dene);//tip öğrenme iĢlemi, ekrana string
yazacaktır
settype($bul,string);//tip değiĢtirme iĢlemi, tipi stringe
cevirir
echo gettype($bul);//ekrana string yazacaktır
$tampon=(integer) $dene;//tip kopyalama iĢlemi tipi
integer‘e çevirir.
echo $dene;//ekrana 0 yazacaktır.
?>

Hiç yorum yok:

Yorum Gönder