Fonksiyonlar programda tekrar tekrar kullanılabilen işlevsel ifade bloklarıdır. Bir sayfa yüklendiğinde bir fonksiyon yürütülmez. Fonksiyon, sadece çağrıldığında yürütülür.
PHP fonksiyonlar konusunda ilk demek istediğimiz şey: PHP’nin gerçek gücünün fonksiyonlarında olduğudur. PHP’de 1000’den fazla yerleşik fonksiyon (built-in functions) vardır. PHP’de kullanıcı tanımlı fonksiyonumuzu da (user defined function) oluşturabiliriz.
- 1 PHP Kullanıcı Tanımlı Fonksiyon Nedir? (User Defined Functions)
- 2 PHP Fonksiyon Oluşturma (Define Function)
- 3 PHP Fonksiyonlar
- 4 PHP Fonksiyonlar: Değer Döndürme (Returning Value)
- 5 PHP Fonksiyonlar: Varsayılan Argüman Değeri (Default Argument Value)
- 6 PHP Katı Kuralları Olmayan Bir Dildir (Loosely Typed Language)
- 7 PHP Dönen Değer Türü Tanımlama (Return Type Declarations)
PHP Kullanıcı Tanımlı Fonksiyon Nedir? (User Defined Functions)
PHP’de yerleşik binlerce fonksiyon vardır. Ancak istersek kendi fonksiyonumuzu da oluşturabiliriz. Kendimizin yani bir kullanıcının oluşturduğu fonksiyona kullanıcı tanımlı fonksiyon (user defined function) denir.
PHP Fonksiyon Oluşturma (Define Function)
PHP fonksiyon tanımlamak için function anahtar kelimesini (keyword) kullanırız. Bu anahtar kelimenin ardından fonksiyon adını belirtiriz ve parantez açıp kapatırız. Fonksiyonu tanımladıktan sonra kapsamını belirtmek için süslü parantezleri açar, kodları yazar ve süslü parantezleri kapatırız. Söz dizimi aşağıdaki gibidir.
function functionName() {
// Çalıştırılacak kodlar
}
PHP Fonksiyon Oluşturma Kuralları
- PHP Fonksiyon isimleri sadece harflerle, alt çizgiyle '_' ve dolar işaretiyle '$' başlayabilir.
- PHP Fonksiyon isimleri bir rakamla başlayamaz. Fakat rakamlar ilk karakterden sonraki karakterlerde kullanılabilir.
- PHP Fonksiyon isimleri PHP tarafından rezerve edilmiş kelimeleri (if, break, for, const vb.) içeremez.
- PHP Fonksiyon isimleri büyük küçük harf duyarlı değildir.
PHP Fonksiyon Oluşturma Önerileri
- PHP fonksiyonlara işlevine uygun isim verilmelidir. Örneğin fonksiyon bir mesaj yazdırıyorsa fonksiyon adı writeMsg() olabilir. Ancak mesaj yazdıran bir fonksiyon adının function1() olması anlamsızdır.
- PHP fonksiyonları adlandırırken kullanılan naming convention kurallarına uyulmalıdır. Naming convention kullanılmıyorsa PHP PSR’e göre hareket edilmelidir.
- PHP 7’den itibaren tanımlanan fonksiyonlarda tür bildirimi (type declaration/return type hint) yapılması önerilir.
PHP Fonksiyonlar
Aşağıdaki örnekte function anahtar kelimesini kullanarak writeMsg adında bir fonksiyon oluşturduk. Fonksiyonun kod bloğu kapsamında echo ile “Hello World” yazdırdık. Ardından fonksiyonu çağırdık ve “Hello World” çıktısını aldık.
function writeMsg() {
echo 'Hello World!';
}
writeMsg();
// Çıktı: Hello World
PHP Fonksiyonlar: Argümanlar (Arguments)
PHP’de fonksiyonlarda argüman (argument) tanımlayabiliriz. Argümanı fonksiyon adından sonraki parantez içerisine tanımlarız. Fonksiyonu çağırırken ise tanımladığımız argümana değer veririz. Aşağıdaki örnekte bunu yaptık.
İpucu: Birden fazla argüman tanımlayabiliriz.
function numbers($number1, $number2) {
echo "Sayı 1: {$number1} Sayı 2: {$number2}";
}
echo numbers(21, 4);
/*
* Çıktı:
Sayı 1: 21
Sayı 2: 4
*/
PHP Fonksiyonlar: Değer Döndürme (Returning Value)
PHP’de argümanlara varsayılan değer atayabiliriz. Fonksiyon çağrılırken değer verilmezse varsayılan değer kullanılır. Aşağıdaki örnekte varsayılan olarak 30 değerini verdik. Fonksiyonu ilk çağırdığımızda argümana değer vermediğimiz için varsayılan değer kullanıldı. İkinci çağırdığımızda ise argümana verdiğimiz değer kullanıldı.
function calcModulus($number1, $number2) {
return $number1 % $number2;
}
echo calcModulus(21, 4);
// Çıktı: 1
PHP Fonksiyonlar: Varsayılan Argüman Değeri (Default Argument Value)
PHP’de return anahtar kelimesi (keyword) aracılığıyla fonksiyondan değer döndürebiliriz. Ancak return değeri yazdırmaz, çıktılamaz; sadece döndürür. Aşağıdaki örnekte tanımladığımız fonksiyondan return aracılığıyla değer döndürdük.
function age ($age = 30) {
echo "Senin yaşın: {$age} ";
}
age(); // Çıktı: 30
age(20); // Çıktı: 20
PHP Katı Kuralları Olmayan Bir Dildir (Loosely Typed Language)
PHP katı kuralları olmayan bir dildir. PHP’de değişkenin hangi veri türünde olduğunu PHP’ye belirtmemiz zorunlu değildir. Veri türleri katı bir şekilde belirlenmediğinden dolayı integer veri türü içeren bir değişkene string veri türü ekleyebiliriz. Aynı durum fonksiyonlarda da geçerlidir. PHP 7’den itibaren fonksiyonlarda argüman türlerini ve dönen değer türünü tanımlayabiliriz. Clean code (temiz kod) yazmak açısından bu önerilir, ancak PHP 7’de zorunlu değildir.
function addNumbers(int $a, int $b) {
return $a + $b;
}
echo addNumbers(5, "5 gün");
// Çıktı: 10
PHP Dönen Değer Türü Tanımlama (Return Type Declarations)
PHP’de katı modda dönen değer türünü tanımlayabiliriz. Aşağıdaki örnekte fonksiyonun döndüreceği değeri belirledik.
function addNumbers(float $a, int $b) : float {
return $a + $b;
}
echo addNumbers(1.2, 6);
// Çıktı: 7.2