PHP Static Metot Kullanımı

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;
?>

YAZAR HAKKINDA

26 Yaşında. Araştırmayı seven, bir şeyler öğretmeye meraklı bir Bilgisayar Mühendisi

0 YORUM

Bu konuya henüz yorum yapılmamış

Yorum Yap

@COPYRIGHT KodlamakLazım Tüm Hakları Saklıdır.