PHP ООП - Модификаторы доступа
PHP - Модификаторы доступа
Свойства и методы могут иметь модификаторы доступа, которые контролируют, где они могут быть доступны.
Есть три модификатора доступа:
-
public
- свойство или метод могут быть доступны из любого места. Это по умолчанию; -
protected
- свойство или метод могут быть доступны внутри класса и с помощью классов, производных от этого класса; -
private
- свойство или метод могут быть доступны ТОЛЬКО внутри класса.
В следующем примере мы добавили три разных модификатора доступа к трем свойствам. Здесь, если вы попытаетесь установить свойство name, оно будет работать обычно (потому что свойство name является общедоступным). Однако если вы попытаетесь установить свойство color или weight, это приведет к фатальной ошибке (поскольку свойство color защищено и свойство weight является частным):
Пример
<?php
class Fruit {
public
$name;
protected $color;
private $weight;
}
$mango = new Fruit();
$mango->name = 'Mango'; // OK
$mango->color = 'Yellow'; // ОШИБКА
$mango->weight = '300'; // ОШИБКА
?>
Попробуйте сами »
В следующем примере мы добавили модификаторы доступа к двум методам. Здесь, если вы попытаетесь вызвать функцию set_color() или set_weight(), это приведет к фатальной ошибке (потому что две функции считаются защищенными и закрытыми), даже если все свойства являются открытыми:
Пример
<?php
class Fruit {
public
$name;
public $color;
public $weight;
function set_name($n) {
// публичная функция (по умолчанию)
$this->name = $n;
}
protected function set_color($n) {
// защищенная функция
$this->color = $n;
}
private function set_weight($n) {
// частная функция
$this->weight = $n;
}
}
$mango = new Fruit();
$mango->set_name('Mango'); // OK
$mango->set_color('Yellow'); // ОШИБКА
$mango->set_weight('300'); // ОШИБКА
?>
Попробуйте сами »