Bu makalemizde PHP’de class yapısını, constructor, fonksiyon ve static fonksiyon tanımlamasının nasıl yapıldığını inceleyeceğiz.
Nesne yönelimli programlamanın temelini oluşturan Class’lar PHP’nin de en önemli konularından biridir. Tanımlama olarak diğer programlama dillerinin tanımlamasına benzer şekilde tanımlanmaktadır.
Class tanımlaması aşağıdaki gibi yapılmaktadır.
- <?php
- class Islem
- {
- }
- ?>
Bir class (sınıf) türünden bir nesne oluşturulduğunda ilk çalışan sınıfın constructor’ıdır. Islem class’ına bir constructor tanımlayalım.
- <?php
- class Islem
- {
- private $sayi1;
- private $sayi2;
- function __construct($sayi1, $sayi2)
- {
- $this->sayi1 = $sayi1;
- $this->sayi2 = $sayi2;
- }
- }
- ?>
private 2 tane değişkenimiz var. Bu değişkenlerimiz constructor’dan gelen verileri globalde tutup yazacağımız diğer fonksiyonlarda bu değişkenleri kullanacağız.
$this-> keywordu ile global alanda tanımlanan private $sayi1 ve $sayi2 değişkenlerimize erişmekteyiz.
Son olarak Topla() ve Cikar() isminde iki fonksiyon oluşturalım. Bu fonksiyonlar geriye bu iki sayının toplamını ve farkını döndürsün.
- <?php
- class Islem
- {
- private $sayi1;
- private $sayi2;
- function __construct($sayi1, $sayi2)
- {
- $this->sayi1 = $sayi1;
- $this->sayi2 = $sayi2;
- }
- public function Topla()
- {
- return $this->sayi1 + $this->sayi2;
- }
- public function Cikar()
- {
- return $this->sayi1 - $this->sayi2;
- }
- }
- ?>
Son olarak geriye bir şey döndürmeyen (void) Goster() methodunu oluşturalım. Bu method da ekranda sonucu yazmamızı sağlasın. Sınıfımızın son hali aşağıdaki gibi olacaktır.
- <?php
- class Islem
- {
- private $sayi1;
- private $sayi2;
- function __construct($sayi1, $sayi2)
- {
- $this->sayi1 = $sayi1;
- $this->sayi2 = $sayi2;
- }
- public function Topla()
- {
- return $this->sayi1 + $this->sayi2;
- }
- public function Cikar()
- {
- return $this->sayi1 - $this->sayi2;
- }
- public function Goster($metin)
- {
- echo $metin;
- }
- }
- ?>
Şimdi Islem sınıfı türünden bir nesne oluşturalım ve yazdığımız methodları kullanalım.
- $islem = new Islem(20,10);
- $islem->Goster($islem->Topla(). "<br/>");
- $islem->Goster($islem->Cikar(). "<br/>");
Burada en dikkat etmemiz nokta, -> ile nesnemizin methodlarına erişebilmektir.
Sınıf tanımlamasını method çağırmalarını sınıfımızın son }’inden sonra yazalım ve çalıştıralım. Aşağıdaki ekran çıktısını alacağız.
Şimdi class’larda static fonksiyonların nasıl tanımlandığını bir örnek ile inceleyelim. Yukarıdaki örnek uygulamamızın aynısını, methodları static olacak şekilde düzenleyip çalıştıralım.
- <?php
- class Islem
- {
- public static $sayi1;
- public static $sayi2;
- public static function Topla()
- {
- return self::$sayi1 + self::$sayi2;
- }
- public static function Cikar()
- {
- return self::$sayi1 - self::$sayi2;
- }
- public static function Goster($metin)
- {
- echo $metin;
- }
- }
- Islem::$sayi1 = 20;
- Islem::$sayi2 = 10;
- Islem::Goster(Islem::Topla(). "<br/>");
- Islem::Goster(Islem::Cikar(). "<br/>");
- ?>
Static tanımlamasında dikkat etmemiz gereken birkaç nokta vardır.
- Global static değişkenlere self keywordü ile erişmekteyiz.
- Class’taki public değişkenlere erişebilmek için Class::$Degisken şeklinde erişiyoruz.
- Class’taki bir static methoda erişmek için :: kullanıyoruz.
Kodumuzu çalıştırdığımızda aşağıdaki ekran çıktısını alacağız.
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi