static method
static method ile örnek oluşturmadan çağrılabilen method yazmayı öğrenirsin.
static method
Bir static method, sınıfa ait bir methoddur; örneğe değil. public static function square(int $n): int biçiminde tanımlanır. Çağırmak için new'e gerek yoktur: MathHelper::square(4) doğrudan çalışır ve 16 döner.
Önemli nokta: static method içinde $this kullanılamaz. Çünkü $this bir örneğe işaret eder; static methodda örnek yoktur. Yalnızca static property'lere ve diğer static methodlara erişebilirsin.
Static methodlar, matematik yardımcıları, dönüştürücüler veya fabrika (factory) methodları gibi örnek durumu gerektirmeyen işler için idealdir.
static method tanımı ve çağrısı
Bir MathHelper sınıfı tanımlayalım. İçinde public static function square(int $n): int { return $n * $n; } yazarsan, bunu dışarıdan MathHelper::square(5) ile çağırırsın; sonuç 25 olur.
Birden fazla static method aynı sınıfta yan yana durabilir: square, cube, double. Her biri MathHelper::metodAdi(argüman) biçiminde çağrılır. Örnek oluşturmak (new MathHelper()) gerekmez.
Bu yaklaşım, özellikle yardımcı (helper) işlevleri gruplandırmak için pratiktir; sınıf bir ad alanı gibi çalışır.
Uygulama MathHelper: square ve cube static methodları
Bir MathHelper sınıfı tanımla. İçinde iki static method olsun: square(int $n): int karesini döndürsün, cube(int $n): int kübünü döndürsün. Sonra echo MathHelper::square(4) . "\n" ve echo MathHelper::cube(3) . "\n" ile sonuçları yazdır.
Örnek çözümü göster
int { return $n * $n; } yaz, cube için $n * $n * $n döndür, sonra echo MathHelper::square(4) . "\n"; ve echo MathHelper::cube(3) . "\n"; yaz.
Örnek çözüm:
<?php
// MathHelper sınıfını tanımla
class MathHelper {
public static function square(int $n): int {
return $n * $n;
}
public static function cube(int $n): int {
return $n * $n * $n;
}
}
echo MathHelper::square(4) . "\n";
echo MathHelper::cube(3) . "\n";
Kendini test et
-
Bir static method aşağıdakilerden hangisini KULLANAMAZ?
- Başka static methodları
- Static property'leri
- $this pseudo-variable
- Return ile değer döndürmeyi
Cevabı göster
$this pseudo-variable — Doğru. static method içinde $this kullanılamaz; örnek bağlamı yoktur.
-
static method çağrısı
class MathHelper { public static function square(int $n): int { return $n * $n; } } echo ____Cevabı göster
class MathHelper { public static function square(int $n): int { return $n * $n; } } echo MathHelper::square(5); -
static method ifadelerini eşleştir
- public static function
- Method tanımı
- MathHelper::square(4)
- Çağrı örneği
- $this
- Static methodda kullanılamaz
- return $n * $n
- Geri dönüş değeri