PHP Fonksiyonlar
Fonksiyon, belirli sayıda verileri kullanarak bunları işleyen ve bir sonuç üreten komut grubudur. Her fonksiyonun bir adı ve fonksiyona gelen değerleri gösteren parametreleri (bağımsız değişkenleri) vardır. Her fonksiyonda parametre olması zorunlu değildir. Parametresiz fonksiyonlar, adından da anlaşılacağı gibi herhangi bir parametreye gerek duymadan ve fonksiyonda tanımlanan kodların yerine getirilmesi ile çalışan fonksiyonlardır.
Fonksiyonlar programcılar için önemlidir. Çünkü tekrar tekrar yazmamız gereken kodları fonksiyonlaştırıp kullanarak hem kod yapısını azaltma, hem hızdan hem de zamandan kazanıyoruz. Aşağıda ki şekil fonksiyonların çalışma prensibini gösteriyor.
Yerleşik Fonksiyonlar
Yerleşik fonksiyonlar, PHP kurulum paketinde bulunan fonksiyonlardır.
Bu yerleşik fonksiyonlar PHP web programlama dilini çok verimli bir betik dili yapan özelliktir.
Yerleşik fonksiyonlar birçok kategoride sınıflandırılabilir. Aşağıdaki kategorilerin listesi.
Metin Fonksiyonları
Bunlar, Metin verilerini işleyen Fonksiyonlardır.
Sayısal Fonksiyonlar
Sayısal fonksiyonlar, sayısal sonuçlar veren fonksiyonlardır.
Sayısal php fonksiyonu sayıları biçimlendirmek, sabitleri döndürmek, matematiksel hesaplamaları yapmak vb. İçin kullanılabilir.
Tarih Fonksiyonu
Tarih fonksiyonu, Unix tarih ve saatini ziyaretci tarafından okunabilir biçime biçimlendirmek için kullanılır.
Diğer fonksiyonlar
- Diziler
- Dosyalar
- Veritabanı Fonksiyonları
Neden Kullanıcı Tanımlı Fonksiyonları kullanıyoruz ?
Kullanıcı tanımlı fonksiyonlar ne zaman kullanışlı olur.
- Uygulamanızda veritabanına veri eklemek gibi rutin görevleriniz varsa.
- Veriler üzerinde doğrulama kontrolleri yapılması
- Kullanıcıların kimliklerini doğrulamak gibi...
Tüm bu fonksiyonları oluşturmak, PHP'yi güçlü bir betik dili yapan özelliklerden biridir.
Kullanıcı tanımlı ilk fonksiyonlarımızı oluşturmadan önce, kendi fonksiyonlarımızı oluştururken izlememiz gereken kurallara bakalım.
- Fonksiyon isimleri bir harf veya alt çizgi ile başlamalı fakat bir sayı ile başlamamalı.
- Fonksiyon adı benzersiz olmalı.
- Fonksiyon adı boşluk içermemelidir.
- Tanımlayıcı fonksiyon adlarını kullanmak iyi bir uygulama olarak kabul edilir.
- Fonksiyonlar isteğe bağlı olarak parametreleri kabul edebilir ve değerleri de döndürebilir.
PHP Kullanıcı Tanımlı Fonksiyonlar
Yerleşik fonksiyonlara ek olarak PHP, kendi fonksiyonlarını tanımlamanıza da olanak sağlar. Belirli görevleri yerine getiren ve ayrıca ana programdan ayrı olarak saklanıp bakımı yapılabilen yeniden kullanılabilir kod paketleri oluşturmanın bir yoludur. Fonksiyon kullanmanın bazı avantajları:
- Fonksiyonlar, program içindeki kod tekrarını azaltır : Fonksiyon, yaygın olarak kullanılan kod bloğunu tek bir bileşene çıkarmanıza olanak tanır. Artık aynı Fonksiyonu, kodunuzu tekrar tekrar kopyalayıp yapıştırmak zorunda kalmadan, betiğinizin içinde istediğiniz yere çağırarak aynı görevi gerçekleştirebilirsiniz.
- Fonksiyonlar kodun korunmasını çok daha kolaylaştırır : Bir kez oluşturulan bir Fonksiyon birçok kez kullanılabildiğinden, bir Fonksiyon içinde yapılan değişiklikler, birkaç dosyaya dokunmadan tüm yerlerde otomatik olarak uygulanır.
- Fonksiyon hataları ortadan kaldırmayı kolaylaştırır : Program fonksiyonlara bölündüğünde, herhangi bir hata oluşursa, hataya neden olan fonksiyon ve onu nerede bulacağınızı tam olarak bilirsiniz. Bu nedenle, hataları düzeltmek çok kolaylaşıyor.
- Fonksiyonlar diğer uygulamalarda tekrar kullanılabilir : Bir fonksiyon betiğin geri kalanından ayrıldığından, bu fonksiyonu içeren php dosyasını dahil ederek aynı fonksiyonu diğer uygulamalarda tekrar kullanmak kolaydır.
Fonksiyon Tanımlama
Özel bir fonksiyonun oluşturmanın temel sözdizimi aşağıdaki örnekle sağlanabilir:
function fonksiyonismi() {
//kodlar buraya yazılacak
}
Kullanıcı tanımlı bir fonksiyonun bildirimi "function"
kelimesi ile başlar ardından oluşturmak istediğiniz fonksiyonun adı parantezler ile devam eder () ve sonunda fonksiyonunuzun kodunu küme parantezleri arasına yerleştirin { }.
Parametresiz basit bir fonksiyon örnek verelim.
<?php
function mesaj()
{
echo "merhaba PHP dünyası ";
}
mesaj(); //fonksiyon çağrılıyor
mesaj(); //fonksiyon çağrılıyor
?>
Yukarıda örnekte mesaj fonksiyonumuz iki kere çağrıldı. Ekrana iki kere "merhaba PHP dünyası" yazacak.
Parametre ve Argüman Kavramı
Fonksiyon bildiriminde, fonksiyona girdi olarak, kullanılan değişkenlere parametre denir. Argüman ise fonksiyon çağrılırken gönderilen değere(lere) verilen addır. Bunun yanısıra fonksiyonlarda argüman kullanma zorunluluğu yoktur.
<?php
// Fonksiyon bildiriliyor
function topla($x,$y) // Burada x ve y parametre
{
return ($x+$y);
}
//Fonksiyon çağrılıyor
$t = topla( 7,3 ); // Burada 7 ve 3 argüman
?>
Argümanların giriliş sırası ( 7,3 )'e göre parametre değer sırasıda aynı sırayla görünmesi gerekir. "x=7" atanır ve "y=3" atanır unutmayın.
<?php
function okul ($ad,$sinif)
{
echo "Hoşgeldiniz $ad - $sinif";
}
okul("Ahmet","9/B");
?>
Neden Fonksiyonlar ?
Farklı Argümanlar ile aynı kodu birçok kez kullanabilirsiniz, ve farklı sonuçlar elde edersiniz.
<?php
function derece($fah) {
$c = (5/9) * ($fah-32);
return $c;
}
echo derece(50)."<br>"; // 10
echo derece(80); // 26.6
?>
Değer Döndürme
Hazırladığımız foksiyonun bazı durumlarda geriye değer döndürmesi gerekebilir. Bu durumda fonksiyon değer döndürmesi için return
ifadesi kullanılır. Değer, diziler ve nesneler dahil olmak üzere herhangi bir türde olabilir.
Yukarıda ki örneklerimizde sonuçları echo
komutu ile ekrana yazdırılmıştır. Direk ekrana yazdırmak yerine sonuçları istediğimiz gibi istediğimiz yerde işleme koymak isteyebiliriz.
<?php
function carp($sayi1, $sayi2)
{
return $sayi1 * $sayi2;
}
echo carp(5,8) + carp(2,10) * carp(2,5); // 240
?>
Yukarıda ki örnekte görüldüğü gibi return
ile dönen değeri istedeğimiz biçimde kullanıyoruz. Yani dönen değeri tekrar işleyebilir, yada direk echo
komutu ile ekrana yazabiliriz.
Aşşağıda ki örnekte iki tane return
ifadesi kullandık. fonksiyonu bölme işlemi yapmak için kodlar oluşturuldu. Bölme işlemlerde sıfır sayısı verildiğinde hataya neden olacağından fonksiyona sıfır değeri parametre olarak girilip, girilmediğini kontrol edip sıfır döndürüyoruz.
<?php
function bolme($sayi1,$sayi2)
{
if($sayi1==0 || $sayi2==0) return 0;
return($sayi1 / $sayi2);
}
echo bolme(15,3)."<br>"; //5
echo bolme(5,0); //0
?>
Birden fazla kullanılan return
ifadelerinde ilk gerçekleşen return
değer döndürecektir ve kod akışı bu ifadeden itibaren duracaktır, yani kodun akışı bu ifade ile duracaktır. Diğer return
ifadelerine geçmez.
Varsayılan Değer
İsteğe bağlı parametrelere sahip fonksiyonlar da oluşturabilirsiniz - sadece parametre adını, ardından eşittir (=) işaretini ve ardından aşağıdaki örnekte ki gibi varsayılan bir değeri girin.
<?php
// Fonksiyonu Tanımla
function customFont($font, $size=1.5){
echo "<p style=\"font-family: $font; font-size: {$size}em;\">
Merhaba Dünya!</p>";
}
// Fonksiyonu çağır
customFont("Arial", 2);
customFont("Times", 3);
customFont("Courier");
?>
Gördüğünüz gibi üçüncü çağrı customFont()
ikinci argümanı içermiyor. Bu PHP motorunun $size=1.5 olan parametre için varsayılan değeri kullanmasına neden olur .
Dizi Değer Döndürme
<?php
function dizi()
{
return ["Kitap", "Müzik", "Bilgisayar"];
}
list($a, $b, $c)=dizi();
echo "$c kullanırım, $a okurum, ve $b dinlerim";
?>
ÇIKTI:
ÖRNEK:
<?php
function dizi()
{
$arr=["Elma", "Çilek", "Kiraz"];
return $arr;
}
$dizi=dizi();
echo $dizi[2] // Kiraz
?>
ÖRNEK:
<?php
function isim(){
return["a"=>"masa", "b"=>"bisiklet", "c"=>"araba"];
}
$dizi=isim();
echo $dizi["a"]; // masa
?>
İç İçe Fonksiyon
ÖRNEK:
<?php
function topla($a,$b)
{
function carp($a,$b)
{
echo "çarpma sonucu..:".($a*$b);
}
echo "Toplama sonucu:".($a+$b);
}
topla(8,14); //22
carp(8,3);//24
?>
ÖRNEK:
<?php
function topla($a,$b)
{
function carp($a,$b)
{
echo "çarpma sonucu..:".($a*$b);
}
echo "Toplama sonucu:".($a+$b);
carp(8,3);
}
topla(8,14);
?>
Global Anahtar Kelime
Fonksiyonlar dışarıdan bir değişkeni kabul etmezler. Kabul etmesi için global
ifadesi kullanılır.
<?php
$x=10;
function topla($y)
{
return $x + $y;
}
topla(5) // Undefined variable
?>
Yukarıda ki örnekte fonksiyon dışındaki $x değişkeni fonksiyon içinde kullanmak istiyoruz. Fonksiyonu çalıştırdığımızda toplam 15 yerine $x değişkeni tanımsız uyarası yapacak.
Global ifadesi ile dışarıdaki bir değişkeni fonksiyon içerisinde kullanabiliriz.
<?php
$x=10;
function topla($y)
{
global $x;
return $x + $y;
}
echo topla(5) //15
?>
Global ifadesi ile birden fazla değişkeni aralarına virgül koyarak tanımlarız.
<?php
$x=10; $y=5;
function topla()
{
global $x , $y;
return $x + $y;
}
echo topla() //15
?>
Özyineleme (recursive) Fonksiyonlar
Özyinelemeli bir fonksiyon, bir koşul yerine getirilinceye kadar kendini tekrar tekrar çağıran bir fonksiyondur. Fonksiyon içerisinde oluşturulan koşul sağlanana dek, fonksiyon sürekli olarak kendini çağırır. Genellikle parametreli fonksiyonlar ile kullanılır ve fonksiyon her çağırıldığında parametre koşula bağlı olarak artırılarak veya azaltırılarak koşul sağlanmaya çalışılır. Bu esnada dilediğiniz işlemi fonksiyona yaptırabiliriz.
Özyinelemeli fonksiyonlar genellikle karmaşık matematiksel hesaplamaları çözmek veya derin yuvalanmış bir dizinin tüm öğelerini yazdırmak gibi iç içe geçmiş yapıları işlemek için kullanılır.
Aşağıdaki örnek, özyinelemeli bir fonksiyonun nasıl çalıştığını gösterir.
<?php
function faktoriyel ($i)
{
if($i < 1)
return 1;
else
return $i * faktoriyel($i-1);
}
echo faktoriyel(5); //120
?>
Fonksiyonlarda Referans
PHP prğramlama dilinde fonksiyonlara argümanları iletmenin iki yolunu destekler. Varsayılan yol, bağımsız değişkenleri değere göre iletmektir. Değerlere argümanları ilettiğimizde, fonksiyon yalnızca değerlerin kopyalarıyla çalışır. Bu, büyük miktarda veriyle çalıştığımızda genel performansa neden olabilir.
Argümanları fonksiyonlara referans olarak aktarmak mümkündür. Bu, değişkene bir referansın, değişken değerinin bir kopyası yerine fonksiyon tarafından Değiştirildiği anlamına gelir.
Bütün değişkenler için referans tanımı yapılabilir. Fonksiyonlarda, dizilerde, nesnelerde gerektiğinde referans kullanımına başvurabilir. Değişkenler için örnek verelim.
ÖRNEK:
<?php
$x = "Merhaba Dünya";
$y = &$x;
echo $x;
echo $y;
?>
Örneğimiz "Merhaba Dünya", "Merhaba Dünya" şeklinde çıktı verecektir. Burada $x değişkenin değeri $y değişkenine ampersand (&) ile referans olarak atadık $x ne ise $y'de odur $y ne ise $x 'de odur. Yani $x değişkeni $y değişkenin adresi tutar.
<?php
$x = "Merhaba Dünya";
$x = &$y;
$y = "Merhaba PHP Dünya";
echo $x;
echo $y;
?>
Örneğimizde ekrana iki kez "Merhaba PHP Dünya", "Merhaba PHP Dünya" yazar. Görüldüğü gibi $y değişkeninde değer değişmesi, $a değişkenin değerinin değişmesi demektir, yani değer değişikliği her ikisi içinde geçerlidir. Bu duruma referans denir. Eğer değişkenlerden birisini yok edersek diğerinin değeri bu durumda değişmeyecektir yani referans ortadan kalkacaktır.
ÖRNEK:
Aynı örnekte $x değişkeninin değerini unset()
fonksiyonu ile yok edelim Bu işlem sonucunda $y değişkenin değeri değişmeyecektir.
<?php
$x = "Merhaba Dünya";
$y = &$x;
unset($x);
echo $x;
echo $y;
?>
Örneğin Çıktısı "Merhaba Dünya" olacaktır. Yani $y değişkeni $a değişkenine artık bağımlı değil (referans artık yok) ve tek başına bir değişkendir. Bir fonksiyon içinde referans kullanımı benzer biçiminde çalışır.
Normalda şartlarda, fonksiyonlara değişkenlerin referansları değil, değerleri gönderilir. Eğer bir fonksiyona değişkenin referansı gönderilir ve fonksiyon içinde bu değişkenin değeri değiştirilirse, fonksiyon dışında ki değişkeninde değeri değiştirilmiş olur. Bir fonksiyona değişkenin referansını göndermek için değişkenin başına ampersand (&) işareti yerleştirilir.
<?php
function referans(& $sayi)
{
$sayi = 9;
}
$sayi = 4;
referans($sayi);
echo $sayi;
?>
Ekranda 9 yazar. Referans fonksiyonunun parametresinde kullandığımız referans nedeniyle o parametreye yüklenen değişkenin değeri fonksiyon içinde değiştirmemizle değişecek. Burada da fonksiyon içinde parametreye 9 atadık dışarıdaki değişkeninde değeri 9 olmuş oldu.
- HTML
- CSS
- PHP
- JQUERY
- PHOTOSHOP
- JavaScript
- Web Dünyası
- Linux
- MİTHRİL FRAMEWORK
- Laravel
- Git
- React
- HTML LİNK(Bağlantı)EKLEME - LİNK VERME
- HTML YAZI VE RESİM ORTALAMA
- HTML RESME LİNK VERME
- HTML FORM OLUŞTURMA
- CSS YATAY MENÜ YAPIMI
- HTML RESİM EKLEME
- CSS (BOYUT) GENİŞLİK VE YÜKSEKLİK (Width-Height)
- HTML DİV ve SPAN NEDİR?
- HTML ARKAPLANA MÜZİK EKLEME
- KALİTE KAYBETMEDEN RESİMLERİ BÜYÜTME