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 "Հասանելիություն հանրային մեթոդին: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
}
protected function protectedMethod() {
echo "Հասանելիություն պաշտպանված մեթոդին: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
}
private function privateMethod() {
echo "Հասանելիություն մասնավոր մեթոդին: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
}
}
class MyChildClass extends MyClass {
public function testAccess() {
echo "Մշակված դասում մուտք: " . $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();