Bir özelliğin ya da bir yöntemin (PHP 7.1.0 ve sonrası) görünürlüğü, bildirim sırasında önüne şu anahtar sözcüklerden biri getirilerek belirlenebilir. Önceki yazımızı tıklayarak okuyabilirsiniz.
public : Genel. Her yerden erişilebilir.
private : Özel. Yalnızca sınıf içerisinden erişilebilir.
protected : Korumalı. Sınıf içerisinden ve türetilen sınıflardan erişilebilir.
static : Sabit. Sınıf içerisindeki herhangi bir özellik veya metoda sınıf çağırılmadan da erişilebilir.
$this : Bu sınıfta şeklinde sınıfı işaret etmek için kullanılır.
self : Kendi sınıfında şeklinde sınıfı işaret etmek için kullanılır.
parent:: : Ebeveyn sınıfında şeklinde sınıfı işaret etmek için kullanılır.
Örnek :
<?php
class Bir{
public $isim = "Uğur";
public const soyisim = "Kabak";
public function Bilgi(){
$metin = "A'dan Z'ye PHP Eğitim Seti";
return $metin;
}
}
$nesne = new Bir;
echo "İsim Soyisim : " . $nesne->isim . " " . Bir::soyisim . "<br> " . $nesne->Bilgi();
?>

Örnek : Özellik standart iste $this, sabit ise self kullanılır
<?php
class Bir{
public $isim = "Uğur ";
public const soyisim = "Kabak ";
public function Bilgi(){
$metin = "İsim Soyisim : " . $this->isim . self::soyisim . " " . "<br>A'dan Z'ye PHP Eğitim Seti";
return $metin;
}
}
$nesne = new Bir;
echo $nesne->Bilgi();
?>

Örnek : Private değerleri public fonksiyonda çağırdığımız için dışarıya çıkarabiliriz.
<?php
class Bir{
private $isim = "Uğur ";
private const soyisim = "Kabak ";
public function Bilgi(){
$metin = "İsim Soyisim : " . $this->isim . self::soyisim . " " . "<br>A'dan Z'ye PHP Eğitim Seti";
return $metin;
}
}
$nesne = new Bir;
echo $nesne->Bilgi();
?>

Örnek : Protected değerleri public fonksiyonda çağırdığımız için dışarıya çıkarabiliriz.
<?php
class Bir{
protected $isim = "Uğur ";
protected const soyisim = "Kabak ";
public function Bilgi(){
$metin = "İsim Soyisim : " . $this->isim . self::soyisim . " " . "<br>A'dan Z'ye PHP Eğitim Seti";
return $metin;
}
}
$nesne = new Bir;
echo $nesne->Bilgi();
?>

Örnek: Iki isimli sınıf Bir sınıfndan türediği için oradaki değerlere ulaşabiliyor.
<?php
class Bir{
private $isim = "Uğur";
private const soyisim = "Kabak";
}
class Iki extends Bir{
public function Bilgi(){
$metin = "İsim Soyisim : " . $this->isim . self::soyisim . " " . "<br>A'dan Z'ye PHP Eğitim Seti";
return $metin;
}
}
$nesne = new Iki;
echo $nesne->Bilgi();
?>

Örnek : Iki isimli sınıf Bir sınıfndan türediği için, oradaki değerlere protected olduğu için ulaşabiliyor.
<?php
class Bir{
protected $isim = "Uğur";
protected const soyisim = "Kabak";
}
class Iki extends Bir{
public function Bilgi(){
$metin = "İsim Soyisim : " . $this->isim . self::soyisim . " " . "<br>A'dan Z'ye PHP Eğitim Seti";
return $metin;
}
}
$nesne = new Iki;
echo $nesne->Bilgi();
?>

Örnek : this olduğu için sadece 2.sınıfı alır ve sonsuz döngüye girer ve bu da hatalı olur.
<?php
class Bir{
public function Bilgi(){
$metin = "PHP";
return $metin;
}
}
class Iki extends Bir{
public function Bilgi(){
$metin = "JS";
echo $metin;
return $this->Bilgi();
}
}
$nesne = new Iki;
echo $nesne->Bilgi();
?>

Örnek : parent olduğu için 2 sınıfı da alır ve sorunsuz çalışır.
<?php
class Bir{
public function Bilgi(){
$metin = "PHP";
return $metin;
}
}
class Iki extends Bir{
public function Bilgi(){
$metin = "JS ";
echo $metin;
return parent::Bilgi();
}
}
$nesne = new Iki;
echo $nesne->Bilgi();
?>

Örnek : static kullanımı
<?php
class islem{
public static $isim = "Codernsoft";
}
echo islem::$isim;
?>

Örnek : Sabitlerde static çalışmaz
<?php
class islem{
public static const isim = "Uğur";
}
echo islem::isim;
?>

Örnek : metodlarda static çalışır
<?php
class islem{
public static function Bilgiver(){
echo "Codern Soft";
}
}
echo islem::Bilgiver();
?>
