Değişken Tür İpuçlarının Tanımı
Değişken tür ipuçları, bir fonksiyona veya metoda geçilecek olan parametrelerin türünü belirtmek için kullanılan bir özelliktir. Bu özellik, kodun okunabilirliğini artırır ve hataların önlenmesine yardımcı olur. PHP, dilin ilk sürümlerinden itibaren değişken tür ipuçları desteklese de, PHP 7.0 ile birlikte kesin tür ipuçları eklenmiş ve sonraki sürümlerde bu özellik geliştirilmiştir.
PHP 7.4 ve Tür İpuçları
PHP 7.4, belirli tür ipuçlarının genişletilmesiyle kullanıcılara daha fazla esneklik sağlar. Bu sürümdeki tür ipuçları şu şekildedir: `int`, `float`, `string`, `bool`, `array`, `callable`, `iterable`, `object` ve `self` gibi sınıf türleri. Kullanıcılar, bu türleri fonksiyonların parametrelerinde kullanarak, hangi türde veri geçileceğini belirtme imkanına sahip olurlar. Bu, kodun geri kalanında kullanıcılara daha kolay bir deneyim sunar.
Temel Kullanım Örnekleri
Değişken tür ipuçları, kutsal bir PHP fonksiyonunun veya metodunun parametrelerinde aşağıdaki gibi kullanılabilir:
“`php
function toplama(int $a, int $b): int {
return $a + $b;
}
echo toplama(3, 5); // Çıktı: 8
“`
Burada `toplama` fonksiyonu, iki `int` türünde parametre alır ve bir `int` döndürür. Eğer geçerli olmayan bir türde argüman verilirse, PHP bir hata fırlatır.
Tip Kontrolü ve Hatalar
Eğer bir işleve yanlış türde bir argüman verilirse, PHP 7.4’te bir `TypeError` meydana gelir. Aşağıdaki örnek, bu durumda nelerin olabileceğini göstermektedir:
“`php
function topla(int $a, int $b): int {
return $a + $b;
}
echo topla(5, “10”); // TypeError: Argument 2 passed to topla() must be of the type int, string given
“`
Bu kod parçasında, `topla` fonksiyonu `int` türünde argümanlar beklemekte, ancak string türünde bir argüman verilmiştir. Sonuç olarak, kod çalışmayı durduracak ve hata mesajı görüntülenecektir.
Return Type İpuçları
PHP 7.4 ayrıca işlevlerin döndürdüğü değerlerin türlerini belirtme olanağı da sunar. Aşağıdaki örnek, bu durumun nasıl gerçekleştirileceğine dair bir örnek sunmaktadır:
“`php
function carpma(int $a, int $b): int {
return $a $b;
}
“`
Burada `carpma` fonksiyonu, iki integer parametre alır ve bir integer döndürdüğünü belirtmektedir. Kullanıcı, bir döndürme türü sağlayarak, sonuçların nasıl beklenmesi gerektiği konusunda bilgi sahibi olur.
Nullable Tür İpuçları
PHP 7.4, nullable tür ipuçlarına da olanak tanır. Bir parametrenin veya dönüş değerinin `null` olabileceğini belirtmek için “?” karakteri kullanılır. Örneğin:
“`php
function alan(?float $yaricap): float {
if ($yaricap === null) {
return 0;
}
return pi() ($yaricap 2);
}
“`
Bu örnekte `yaricap` parametresi nullable olarak tanımlanmıştır, yani bu parametre ya bir `float` ya da `null` değerini alabilir. Kodun, null değer ile korunmasıyla birlikte, hata almadan çalışması sağlanır.
Sınıf ve Arabirim Tür İpuçları
PHP 7.4, sınıf ve arabirim tür ipuçları için de kullanılabilir. Aşağıdaki örnekte bir sınıf tür ipucunun nasıl kullanılacağı gösterilmektedir:
“`php
class Kisi {
public string $ad;
public function __construct(string $ad) {
$this->ad = $ad;
}
}
function kisiBilgisi(Kisi $kisi): string {
return “Kişi adı: ” . $kisi->ad;
}
$kisi = new Kisi(“Ahmet”);
echo kisiBilgisi($kisi); // Çıktı: Kişi adı: Ahmet
“`
Burada `kisiBilgisi` fonksiyonu, `Kisi` türünde bir nesne alır ve ona göre bir bilgi döndürür.
İterable ve Callable Tür İpuçları
PHP 7.4, `iterable` ve `callable` tür ipuçlarına da sahiptir. `iterable`, hem dizileri hem de iteratorleri kabul ederken, `callable` tür ipucu ise bir fonksiyon veya metodu ifade eder. Aşağıdaki örnekler bu türlerin nasıl kullanılacağını gösterir:
“`php
function diziYazdir(iterable $dizi): void {
foreach ($dizi as $eleman) {
echo $eleman . “\n”;
}
}
diziYazdir([1, 2, 3]); // Dizi elemanlarını yazdırır
function islem(callable $fonksiyon, int $x, int $y): int {
return $fonksiyon($x, $y);
}
“`
Bu örnekler, `iterable` ve `callable` tür ipuçlarının pratikte nasıl kullanılacağını göstermektedir.
Genel Değerlendirmeler
Değişken tür ipuçları, PHP 7.4 ile birlikte daha güçlü bir yapı kazandı. Bu özellik, yazılım geliştirme sürecinde önemli bir rol oynamaktadır ve yazılım kalitesini artırmaktadır. Tip güvenliği ile birlikte, yazılım projelerinin bakımını ve genişlemesini kolaylaştırmaktadır. PHP 7.4 ile kullanıcılar, profesyonel düzeyde uygulamalar geliştirmek için daha fazla araç ve esneklik elde etmektedir. Bu, PHP’nin modern web geliştirme süreçlerinde yerini korumasına katkıda bulunmaktadır.