PHP OOP - Modificatori access. PHP - Modificatori access. Funcția set_color(). Funcția set_weight().
Partajeaza in Google Classroom
Teorie: Descriere video Descarcă PDF
PHP - Modificatori access
Proprietățiile și metodele pot avea modificatori access care controlează unde pot fi accesate.
Există trei modificatori access:
- public - proprietatea sau metoda pot fi accesate de oriunde. Aceasta este implicită.
- protected - proprietatea sau metoda pot fi accesate în cadrul clasei și prin clase derivate din acea clasă.
- private - proprietatea sau metoda pot fi accesate DOAR în cadrul clasei.
În exemplul următor, am adăugat trei modificatori access diferiți la cele trei proprietăți. Aici, dacă încercați să setați numele proprietății (name property), va funcționa bine (deoarece numele proprietății (name property) este public).
Cu toate acestea, dacă încercați să setați culoarea sau greutatea proprietății (color and weight property), aceasta va duce la o eroare fatală (fatal error) (deoarece proprietățiile de culoare și greutate (color and weight property) sunt protejate și private):
Exemplu:
<?php
class Fruit {
public $name;
protected $color;
private $weight;
}
$mango = new Fruit();
$mango->name = 'Mango'; // OK
$mango->color = 'Yellow'; // ERROR
$mango->weight = '300'; // ERROR
?>
În următorul exemplu, am adăugat modificatori access la două metode.
Aici, dacă încercați să apelați funcția set_color() sau set_weight(), va rezulta o eroare fatală (fatal error) (deoarece cele două funcții sunt considerate protejate și private), chiar dacă toate proprietățiile sunt publice:
Exemplu:
<?php
class Fruit {
public $name;
public $color;
public $weight;
function set_name($n) { // o funcție publică (implicit)
$this->name = $n;
}
protected function set_color($n) { // o funcție protejată
$this->color = $n;
}
private function set_weight($n) { // o funcție privată
$this->weight = $n;
}
}
$mango = new Fruit();
$mango->set_name('Mango'); // OK
$mango->set_color('Yellow'); // ERROR
$mango->set_weight('300'); // ERROR
?>