Junior
Тартиби калидии self ва this дар PHP чӣ фарқ дорад?
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;
}
}