PHP 4 çekirdeğinde bu işi tamamiyle var anahtar kelimesi ile yapılıyordu. Hatta coder kişiler kendi yazılımlarını kodlar iken var deyimi ile belirttikleri değişkenlerin üst kısımlarına comment belirterek bunların public mi ? private mi? yoksa protected mı ? olduğunu belirterek yazılım sürecinde kolaylık sağlıyorlardı. Fakat PHP 5 ile gelen yeniliklerle artık gizlilik anlamında yeni deyimler eklendi. Bunlardan bir tanesi de public deyimidir. Bu yazıda bu deyimden bahsedeceğim.
Public deyimi ile tüm sabit değişken ve metotlara, her ortamdan erişilebilmeye olanak sağlanır. Hatta güzel bir editör kullanıyorsanız bunların kullanıp, kullanılamayacağını daha kolay görebilirsiniz. :)
İşlemleri kod üstünden anlatacağım için kodları ilk olarak paylaşıyorum.
Tips:
Burada belirtmek isterim ki, bir class nasıl yazılır veya class içinde bir methot nasıl oluşturulur gibi kavramlar bahsetmeyeceğim, bu konuyu anlamak için tabi ki ilk olarak bunlara aşina olmanız gereklidir.
< ?php
class oop {
public $value;
public function getName(){
return $this->value;
}
public function setName($name){
$this->value = $name;
}
}
#######################
$object = new oop();
#######################
$object->setName("Gokalp Kuscu\n");
$object->value = "Onur Aktas";
echo $object->getName();
//OUT : Onur Aktas
?>
Yukarıda public deyiminin nelere olanak sağladığını anlatmıştık. Şimdi burada gördüğünüz gibi iki adet metot, bir adet public değişken bulunmaktadır.
Biraz bu methotlardan bahsedelim :
public getName() : return ifadesinden de anlayacağınız üzere çalıştırıldığı an public değişken değerini size geri dönderiyor.
public setName($name): Burada metotu çalıştırmamız için ilk olarak ona bir parametre göndermeliyiz, gönderilen parametre public değişkene atanıyor.
Biz ne yaptık ?
Şuan biz object isminde bir class nesnesi oluşturduk ve bu nesne class içindeki metotları ve değişkenleri kullanmamızı sağlayan bir aracı oldu. Bu nesne için bellekte bir yer açıldı. Teorik olarak bahsetmeyeceğim için bu bellek organizasyonunu geçiyorum.
Bu nesne ile ilk olarak;
$object->setName(“Gokalp Kuscu\n”); ile class içindeki public değişkene “Gokalp Kuscu” ismini atadık. Daha sonra $object->value = “Onur Aktas”; ile public değişkene doğrudan bir değer atadık ve son olarak echo $object->getName(); ile atanmış değeri ekrana bastık.
Şimdi burada ki public deyimi yanlış kullanılmıştır neden ? ( Kod çalışmaktadır ama programlama mantığı açısından)
Tips:
Yazdığınız class içerisinde sabite değer atayan bir method var ise; bu değişkenin doğrudan dışarıdan kullanılması pek mantıklı değildir. İşte burada public $value; yerel ve her yerde kullanılan bir değişken olarak kullanmak yerine private tanımlanması mantıklıdır.
yazar:
a. gökalp kuşçu
Etiketler: class public, php class public deyimi, php nesneye dayalı programlama, PHP OOP, php public deyimi
Burada bahsedilen yapılan yapılar aslında .net mimarisine yakın yapılardır. Hatta object oriented destekleyen mimarilerin çoğu böyledir. Bu yüzden mantık bakımından anlaşıldığında diğer programlama dillerini öğrenmek basitleşir, sadece syntax yapısı ve dili kullanma kabiliyeti kullanımı sıkıntı yaratmaktadır.
off tekrar edip etüt etmem gereken bir konu daha çıkardan başıma Gökalp. yazma yahu makale falan :)
hc0de, bunlar OO’nun olmazsa olmazlarıdır public private protected const abstract final gibi ozellikleri bilmezseniz OO yazdiğinizi zannedersiniz fakat yaptığınız sey sadece fonksiyon olusturmak olur.
0xyGen, yani? ne demek istedigini anlamadim k.bakma :) sitem ettim gökalp’e uzun zamandır bilgisayarla ilişkim yoktu okudukça hatırlamam gereken şeyler olduğu için sen ne anladın anlamadim ben :)