Merhaba arkadaşlar. Bu yazımızda PHP dilinde static metot kullanımına değineceğiz.
Static metotlar bir sınıf nesneye dönüştürülmeden de kullanılabilen metotlara verilen isimdir.
Static anahtar kelimesiyle tanımlanırlar ve temel sözdizimi şu şekildedir.
<?php
class Deneme {
public static function staticFonksiyon() {
echo "Merhabaaa";
}
}
?>
Static metotlara erişmek için SınıfAdi::metotadi şeklindeki ifadeyi kullanmamız yeterli olacaktır.
<?php
class Deneme {
public static function staticFonksiyon() {
echo "Merhabaaa";
}
}
//Nesne oluşturmadan çağırabiliriz.
Deneme::staticFonksiyon();
?>
Bir sınıf hem statik hem de statik olmayan metotlara aynı anda sahip olabilir. Sınıf içinde statik bir metoda başka bir metottan ulaşmak için self anahtar kelimesi ya da
"::" iki nokta üst üste ifadesi kullanılarak ulaşılabilir.
<?php
class Zafer {
public static function kral() {
echo "Buranın kralı benim !";
}
public function __construct() {
self::kral();
}
}
new Zafer();
// Kod çalıştığında ekranda Buranın kralı benim! yazacaktır.
?>
Statik metotlar diğer sınıflardaki metotlardan da çağırılabilir. Bunun için statik metodumuzu public anahtar kelimesi ile oluşturmamız gereklidir.
<?php
class Sarma {
public static function icMalzemeleri() {
echo "Pirinç ve baharatlar";
}
}
class biberDolması {
public function malzemeler() {
Sarma::icMalzemeleri();
}
}
$yemek = new biberDolması();
$yemek->malzemeler();
//Çıktı : Pirinç ve baharatlar
?>
Bir sınıfın statik metoduna alt sınıftan ulaşmak için parent anahtar kelimesini kullanmanız önerilir. Çünkü statik metot protected veya private olabilir.
<?php
class Insan {
protected static function okul() {
return "Munzur Üniversitesi";
}
}
class Okul extends Insan {
public $okul;
public function __construct() {
$this->okul = parent::okul();
}
}
$okulAdi = new Okul;
echo $okulAdi->okul;
?>