Junior
Ինչ է տարբերությունը PHP-ում self և this բանալի բառերի միջև?
sobes.tech AI
Պատասխան AI-ից
$this հղում է կատարվում օբյեկտի ընթացիկ օրինակին: self հղում է կատարվում ընթացիկ դասին (ստատիկ կոնտեքստում կամ մեթոդների ներսում՝ ստատիկ անդամներին հասնելու համար):
$this:
- Օգտագործվում է կոնկրետ դասի օրինակային հատկություններին և մեթոդներին հասնելու համար:
- Օգտագործվում է ոչ-ստատիկ մեթոդների ներսում:
class MyClass {
public $instanceProperty = 'Բարև';
public function getInstanceProperty() {
// Հասանելիություն ընթացիկ օրինակին
return $this->instanceProperty;
}
}
self:
- Օգտագործվում է դասի ստատիկ հատկություններին և մեթոդներին հասնելու համար:
- Օգտագործվում է ստատիկ և ոչ-ստատիկ մեթոդների ներսում:
class MyClass {
public static $staticProperty = 'Աշխարհ';
public static function getStaticProperty() {
// Ստատիկ հատկության հասանելիություն
return self::$staticProperty;
}
public function accessStaticFromInstance() {
// Ստատիկ հատկության հասանելիություն ոչ-ստատիկ մեթոդից
return self::$staticProperty;
}
}
Օրինակ՝ $this և self-ի համատեղ օգտագործման:
class Example {
public $instanceId;
private static $count = 0;
public function __construct() {
// Ստատիկ հաշվիչը ավելացնելու համար self-ով
self::$count++;
// Օբյեկտի հատկությունը սահմանելու համար $this-ով
$this->instanceId = self::$count;
}
public static function getCount() {
// Ստատիկ հատկությունը ստանալու համար self-ով
return self::$count;
}
public function getInstanceId() {
// Օբյեկտի հատկությունը ստանալու համար $this-ով
return $this->instanceId;
}
}