PHP'de nesne yönelimli programlamanın temellerini öğrenmekte zorlanıyor musun? Bu konunun merkezinde özel referanslar $this ve self yer alıyor. Bu iki anahtar kelime, PHP'deki nesneler ve sınıflarla çalışmak için önemlidir, çünkü iletişimi ve örnek değişkenlerine ve sabitlerine erişimi kontrol eder. Gel, bu kavramların farklılıklarını ve kullanımını birlikte inceleyelim.
En önemli bulgular
- $this, mevcut nesnenin referansıdır ve örnek yöntemlerinde kullanılır.
- self, mevcut sınıfa atıfta bulunur ve statik özelliklere, yöntemlere ve sabitlere erişmek için kullanılır.
- $this ile self arasındaki fark, PHP'de nesne yönelimli programlamayı anlamak için temeldir.
$this referansını anlamak
$this anahtar kelimesiyle başlayalım. $this, mevcut nesneyi referans alan özel bir değişkendir. Bir örnek yöntem içinde $this'e eriştiğinde, bu belirli nesnenin tüm örnek değişkenlerine ve yöntemlerine erişebilirsin.

Diyelim ki veritabanı adında bir sınıfın var ve bunu örneklendiriyorsun. Bu sınıfın bir yönteminin içinde, örneğin User veya Pass gibi örnek değişkenlerine erişebilirsin. Bu, $this->User veya $this->Pass üzerinden gerçekleşir. Bu değişkenler yalnızca ilgili nesnenin bağlamında var olduğu için $this kritik bir öneme sahiptir.
$this'in her zaman mevcut nesneye işaret eden evrensel bir referans olduğunu bilmek önemlidir. Diğer nesneler mevcut olduğunda, $this, kodun bulunduğu nesneye göre bağlama dayalı olarak referans verir.
self anahtar kelimesi detaylı olarak
self anahtar kelimesi ise bir örnekle sınırlı değildir. Bu, sınıfa kendisine işaret eder ve sınıfın statik özelliklerine ve sabitlerine erişmene olanak tanır. Yine veritabanı sınıfını ele alalım. Bu sınıf içinde bir sabit tanımladığını varsayalım. Bu sabite erişmek için self::Sabit kullanabilirsin.

self'in özellikle statik yöntemler ve özellikler için kullanışlı olduğunu unutma. Bu tür değişkenler, tüm sınıf örneği için bir defa bulunmaktadır, her bir nesne için değil. Bu, örnek değişkenlerle önemli bir farktır.
Elbette ki, bir sınıfın yönteminde statik yöntemlere veya sabitlere erişmek istediğin bir durum da vardır. Böyle bir durumda, erişimin sınıf üzerinden yapılmasını sağlamak için self::Yöntem() kullanırsın.

Pratik bir örnek yapalım
Bir SIS sınıfı oluşturmak istediğini hayal et. İşte her iki referansın kullanımını göstermek için basit bir örnek.

Bu sınıf içerisinde statik özellikler ve yöntemler tanımlayabiliriz. Diyelim ki, bir örnek değişken olan name'i kullanan getName() adında bir yöntemin var. Bu örnek değişkenine erişmek için $this->name kullanırsın.

Son olarak, bir echo ile referansların çalıştığını gösterirsin. Hem örnek değişkenleri hem de sabit değerleri sorunsuz bir şekilde yazdırabilirsin, böylece doğru bir şekilde referans edildiklerini göstermiş olursun.

Özet – PHP'de $this ve self'i anlamak
Bugün, PHP'de nesne yönelimli programlamada $this ve self'in kullanımı ve farklılıklarının temellerini öğrendin. $this mevcut nesneye, self ise sınıfın kendisine işaret eder. Bu kavramlar, PHP'de etkili geliştirme için temeldir.
Sıkça Sorulan Sorular
$this ile self arasındaki fark nedir?$this mevcut nesneyi referans alırken, self sınıfın kendisine atıfta bulunur.
$this'i ne zaman kullanmalıyım?Örnek değişkenlere veya yöntemlere erişmek istediğinde $this'i kullan.
self ne zaman mantıklıdır?Sınıfın statik özelliklerine veya sabitlerine erişmek istediğinde self mantıklıdır.
self için özel bir durum var mı?Evet, self, statik yöntemler içinde sınıf üyelerine erişmek için kullanışlıdır.
Örnek değişkenlere doğru eriştiğimi nasıl garanti ederim?Örnek spesifik değerlerine eriştiğinden emin olmak için $this->değişkenAdı kullan.