Menu
Coddy logo textTech

Statik Metotlar ve Özellikler

Coddy'nin PHP Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 17 / 91.

Özellikler statik olabildiği gibi, metotlar da tek tek nesneler yerine doğrudan sınıfa ait olabilir. Statik metotlar, önce bir örnek oluşturmaya gerek kalmadan doğrudan sınıf üzerinden çağrılır.

static anahtar sözcüğünü kullanarak statik bir yöntem bildirir ve bunu sınıf adı ile :: işleciyle çağırırsınız:

<?php
class MathHelper {
    public static function add($a, $b) {
        return $a + $b;
    }
    
    public static function multiply($a, $b) {
        return $a * $b;
    }
}

echo MathHelper::add(5, 3) . "\n";
echo MathHelper::multiply(4, 2);

Çıktı:

8
8

Statik metotlar, statik özelliklerle iyi çalışır. Yaygın bir desen, paylaşılan sınıf verilerini yönetmek için statik bir metot kullanmaktır:

<?php
class Counter {
    private static $count = 0;
    
    public static function increment() {
        self::$count++;
    }
    
    public static function getCount() {
        return self::$count;
    }
}

Counter::increment();
Counter::increment();
echo Counter::getCount();

Çıktı:

2

Statik metotların $this kullanamayacağını unutma, çünkü bir nesne örneği yoktur. Yalnızca statik özelliklere ve diğer statik metotlara self:: kullanarak erişebilirler.

Temel Nokta: Statik metotlar, nesne durumuna ihtiyaç duymayan yardımcı işlevler veya sınıf düzeyindeki verileri yönetmek için kullanışlıdır. Nesne örneği oluşturmayı gerektirmeden işlevsellik sağlarlar.

challenge icon

Görev

Kolay

Benzelendirmeniz gerekmeksizin benzersiz tanımlayıcılar oluşturmak için statik yöntemleri ve özellikleri kullanan bir ID oluşturucu sistemi oluşturalım.

Kodunuzu düzenlemek için iki dosya oluşturacaksınız:

  • IdGenerator.php: Yalnızca statik üyeleri kullanarak benzersiz ID oluşturmayı yöneten bir IdGenerator sınıfı tanımlayın. Sınıf, 0 değerinden başlayan özel bir statik $lastId özelliğine ve "ID" olarak ayarlanmış özel bir statik $prefix özelliğine sahip olmalıdır. Son ID'yi artıran ve ön eki yeni ID ile birleştiren biçimlendirilmiş bir dize (örneğin "ID1", "ID2" vb.) döndüren bir statik generate() yöntemi oluşturun. Ön eki değiştiren bir statik setPrefix($newPrefix) yöntemi ve $lastId özelliğinin geçerli değerini döndüren bir statik getLastId() yöntemi ekleyin.
  • main.php: IdGenerator sınıfı dosyasını dahil edin. Varsayılan ön eki kullanarak iki ID oluşturun ve her birini kendi satırına yazdırın. Ardından statik yöntemi kullanarak ön eki "USER" olarak değiştirin, iki ID daha oluşturun ve her birini yazdırın. Son olarak, uygun statik yöntemi çağırarak son ID numarasını yazdırın.

Statik yöntemlerin, ClassName::methodName() kullanılarak doğrudan sınıf üzerinde çağrıldığını ve sınıf içinde statik özelliklere self::$propertyName ile erişildiğini unutmayın. Nesne örneği olmadığından, statik yöntemlerde $this kullanamazsınız.

Çıktınız, farklı ön eklerle ID'lerin ilerleyişini göstermeli ve statik özelliklerin birden çok yöntem çağrısı boyunca değerlerini nasıl koruduğunu ortaya koymalıdır.

Kendin dene

<?php

// IdGenerator sınıf dosyasını dahil et
require_once 'IdGenerator.php';

// TODO: Varsayılan önek kullanarak iki ID oluştur ve her birini kendi satırına yazdır

// TODO: Statik metodu kullanarak öneki "USER" olarak değiştir

// TODO: İki ID daha oluştur ve her birini kendi satırına yazdır

// TODO: Uygun statik metodu kullanarak son ID numarasını yazdır

?>
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online PHP derleyicisi