Yücel Alkan

PHP OOP Yapısında Const (Sabit) Tanımlama

Merhaba. Bu yazımda PHP Object Oriented Programming yapısında bir class içerisinde sabit tanımlamayı ve kullanmayı anlatacağım. Program akışı içinde değişmeyecek yani sabit kalacak ifadeleri const yapısıyla tanımlayabilir ve kullanabilirsiniz. Sabit olarak tanımladığınız bir ifadenin değerini daha sonra değiştiremezsiniz. 

PHP'de değişken tanımlamak için const ifadesi kullanılır. Class içerisinde sabit tanımı aşağıdaki gibidir. 

class Matematik
{
    const PI = 3.14;
}

Matematik adında bir class oluşturdum ve içinde de PI adında bir sabit tanımladım. Sabit tanımı yapılırken $ işareti kullanılmaz. 

Class içerisinde bulunan bir sabit değere iki şekilde erişim sağlayabilirsiniz: İsterseniz class oluşturmadan doğrudan bu sabite erişebilirsiniz, isterseniz bir nesne oluşturup bu nesne üzerinden erişim sağlayabilirsiniz. Şimdi ikisini de görelim.

echo Matematik::PI;

Tıpkı static yapısında olduğu gibi const ile tanımlanan bir sabite de ClassAdı::SabitAdı şeklinde, nesne oluşturmadan erişim sağlamak mümkündür. 

Const ile tanımlanan bir sabit ifadeye nesne üzerinde de erişim sağlayabilirsiniz. 

$a = new Matematik();
echo $a::PI;

$a adında bir nesne oluşturduktan sonra $a::PI şeklinde const ifadeye erişim sağlanabilir. 

Class içerisinde yer alan bir fonksiyonda const yani sabit değeri kullanmak için self anahtar kelimesi kullanılır. 

class Matematik
{
    const PI = 3.14;

    public function piYaz()
    {
        echo self::PI;
    }
}

Örnekten de anlaşılacağı üzere fonksiyon içerisinden const ile tanımlanan sabit bir değere erişmek için self::sabitAdı şeklinde bir yapı kullanılır. Mesela çemberin çevresini hesaplayan bir fonksiyon tanımı yapıp, bu sabit ifadeyi fonksiyon içinde kullanalım.

class Matematik
{
    const PI = 3.14;

    public function piYaz()
    {
        echo self::PI;
    }

    public function cevreAlanHesapla($r)
    {
        return 2 * self::PI * $r;
    }
}

Çemberin alan hesabı 2 * Pi * r şeklinde hesaplanır. Fonksiyona yarıçap yani r değerini $r parametresi ile gönderip, alan hesabını return ile geri döndürüyorum. Bu fonksiyon public olduğu için nesne üzerinden erişim sağlayıp kullanabilirim.

Yukarıda yaptığım tüm işlemlerin bir arada olduğu yapı aşağıdaki gibidir.

class Matematik
{
    const PI = 3.14;

    public function piYaz()
    {
        echo self::PI;
    }

    public function cevreAlanHesapla($r)
    {
        return 2 * self::PI * $r;
    }
}

// Doğrudan Erişim
echo Matematik::PI;


// Nesne üzerinden Erişim
$a = new Matematik();
echo $a::PI;

echo $a->piYaz();

echo $a->cevreAlanHesapla(10);

Soru ve görüşlerinizi yorum olarak belirtebilirsiniz. Hayırlı çalışmalar dilerim.

06.06.2020
278
Yorumlar
Bu içeriğe henüz yorum yapılmamıştır. İlk yorum yapan siz olun!
Yorum Yapın