PHP OOP - Erişim Değiştiricileri
PHP - Erişim Değiştiricileri
Özellikler ve yöntemler, nerede erişilebileceğini kontrol eden erişim değiştiricilerine sahip olabilir.
Üç erişim değiştiricisi vardır:
-
public
- özellik veya yönteme her yerden erişilebilir. Bu varsayılan -
protected
- özellik veya yönteme sınıf içinde ve o sınıftan türetilen sınıflar tarafından erişilebilir -
private
- özellik veya yönteme SADECE sınıf içinde erişilebilir
Aşağıdaki örnekte, üç özelliğe (ad, renk ve ağırlık) üç farklı erişim değiştiricisi ekledik. Burada name özelliğini ayarlamaya çalışırsanız düzgün çalışacaktır (çünkü name özelliği herkese açıktır ve her yerden erişilebilir). Ancak, renk veya ağırlık özelliğini ayarlamaya çalışırsanız, bu önemli bir hatayla sonuçlanır (çünkü renk ve ağırlık özelliği korunur ve özeldir):
Örnek
<?php
class Fruit {
public
$name;
protected $color;
private $weight;
}
$mango = new Fruit();
$mango->name = 'Mango'; // OK
$mango->color = 'Yellow'; // ERROR
$mango->weight = '300'; // ERROR
?>
Sonraki örnekte, iki fonksiyona erişim değiştiricileri ekledik. Burada, set_color() veya set_weight() işlevini çağırmaya çalışırsanız, tüm özellikler herkese açık olsa bile (iki işlev korumalı ve özel olarak kabul edildiğinden) önemli bir hatayla sonuçlanacaktır:
Örnek
<?php
class Fruit {
public
$name;
public $color;
public $weight;
function set_name($n) {
// a public function (default)
$this->name = $n;
}
protected function set_color($n) {
// a protected function
$this->color = $n;
}
private function set_weight($n) {
// a private function
$this->weight = $n;
}
}
$mango = new Fruit();
$mango->set_name('Mango'); // OK
$mango->set_color('Yellow'); // ERROR
$mango->set_weight('300'); // ERROR
?>