Junior
რა არის PHP-ში ხილვადობის მოდიფიკატორები?
sobes.tech AI
პასუხი AI-სგან
Көрүүчү өзгөрмөлөрдүн (public, protected, private) деңгээли класс мүчөлөрүнө жана методдоруна жетүүнүн деңгээлин аныктайт.
public- бардык жерден жеткиликтүү (класс ичинде, мурас алган классларда, сырттан).protected- класс ичинде жана мурас алган классларда жеткиликтүү.private- гана ошол класс ичинде жеткиликтүү, ал жерде аныкталган.
Мисал:
<?php
class MyClass {
public $publicProperty = 'public';
protected $protectedProperty = 'protected';
private $privateProperty = 'private';
public function publicMethod() {
echo "Public method access: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
}
protected function protectedMethod() {
echo "Protected method access: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
}
private function privateMethod() {
echo "Private method access: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
}
}
class MyChildClass extends MyClass {
public function testAccess() {
echo "Child class access: " . $this->publicProperty . ", " . $this->protectedProperty . "\n"; // public жана protected жеткиликтүү
// echo $this->privateProperty; // ката, private жеткиликтүү эмес
$this->publicMethod();
$this->protectedMethod();
// $this->privateMethod(); // ката, private жеткиликтүү эмес
}
}
$obj = new MyClass();
echo $obj->publicProperty . "\n"; // жеткиликтүү
// echo $obj->protectedProperty; // ката, protected сырттан жеткиликтүү эмес
// echo $obj->privateProperty; // ката, private сырттан жеткиликтүү эмес
$obj->publicMethod();
// $obj->protectedMethod(); // ката, protected сырттан жеткиликтүү эмес
// $obj->privateMethod(); // ката, private сырттан жеткиликтүү эмес
$childObj = new MyChildClass();
$childObj->testAccess();