Özellikler
Sınıf üyesi değişkenlere "özellik" denir. Bunlara bazan "öznitelik" veya
"alan" dendiğini de görürsünüz, fakat bu kılavuzun amaçları doğrultusunda
biz "özellik" terimini kullanacağız. Bunlar normal değişken bildiriminin
önüne public, protected,
veya private anahtar sözcükleri getirilerek bildirilir.
Bildirim, bir ilklendirme olarak da yapılabilir; bu durumda bir sabit
değerle ilklendirme yapılmalıdır. Yani, derleme sırasında
değerlendirilebilmeli, çalışma anında değerlendirilebilecek bilgiler
içermemelidir.
public, protected,
ve private sözcüklerinin anlamları için
Görünürlük belgesine bakınız.
Bilginize:
PHP 4 ile geriye uyumluluğu sağlamak için, PHP 5 özellik bildiriminde
public, protected,
veya private yerine (veya ek olarak) hala
var sözcüğü kabul edilmektedir. Ancak,
var artık gerekli değildir. PHP'nin 5.0'dan 5.1.3'e
kadar olan sürümlerinde, var kullanımı önerilmeyen
kullanım olarak ele alınır ve bir E_STRICT
uyarısı
çıktılanırdı; PHP 5.1.3'ten beri önerilmeme durumu ortadan kalkmış olup bir
uyarı çıktılanmamaktadır.
Bir özelliği public, protected,
veya private yerine var kullanarak
bildirirseniz PHP 5 özelliği public olarak bildirilmiş
gibi ele alır.
Özelliklere, sabitlere ve yöntemlere sınıf yöntemleri içinden erişilirken
yöntem duruk ise self::$özellik, değilse $this-
>özellik sözdizimi kullanılabilir (burada "özellik" özelliğin
ismidir). Daha ayrıntılı bilgi için static Anahtar Sözcüğü
bölümüne bakınız.
Yöntem bir nesne bağlamından çağrılıyorsa $this sözde
değişkeni sınıf yöntemleri içinde de kullanılabilir.
$this, yöntemi çağıran nesneye (yöntemin ait olduğu
nesneye) bir gönderimdir. Fakat yöntem, bir ikincil nesne bağlamından duruk olarak çağrılıyorsa, bu,
birincil nesne de olabilir.
Örnek 1 - Özellik bildirimi
<?php
class SimpleClass
{
// geçersiz özellik bildirimleri:
public $var1 = 'hello ' . 'world';
public $var2 = <<<EOD
hello world
EOD;
public $var3 = 1+2;
public $var4 = self::myStaticMethod();
public $var5 = $myVar;
// geçerli özellik bildirimleri:
public $var6 = myConstant;
public $var7 = array(true, false);
// Buna sadece PHP 5.3.0 ve sonrasında izin verilir.
public $var8 = <<<'EOD'
hello world
EOD;
}
?>
Bilginize:
Sınıflar ve nesnelerle çalışan bazı işlevler vardır. Bunlar için
Sınıf ve Nesne İşlevleri bölümüne bakınız.
Yorumsuz
metinler,
yorumlu metinlerin tersine özellik bildirimleri dahil herhangi bir
duruk veri bağlamında kullanılabilir.
Örnek 2 - Özellik ilklendirmede yorumsuz metin kullanımı
<?php
class foo {
// PHP 5.3.0'dan beri
public $bar = <<<'EOT'
bar
EOT;
}
?>
Bilginize:
Yorumsuz metin desteği PHP 5.3.0'da eklenmiştir.