Junior
Koja je razlika između ključnih reči self i this u PHP?
sobes.tech АИ
Одговор од АИ
$this се odnosi na trenutni primer objekta. self se odnosi na trenutnu klasu (u statičkom kontekstu ili unutar metoda za pristup statičkim članovima).
$this:
- Koristi se za pristup svojstvima i metodama konkretnog primera klase.
- Primjenjuje se unutar nestatičkih metoda.
class MyClass {
public $instanceProperty = 'Zdravo';
public function getInstanceProperty() {
// Pristup svojstvu trenutnog primera
return $this->instanceProperty;
}
}
self:
- Koristi se za pristup statičkim svojstvima i metodama klase.
- Primjenjuje se unutar statičkih i nestatičkih metoda.
class MyClass {
public static $staticProperty = 'Svet';
public static function getStaticProperty() {
// Pristup statičkom svojstvu
return self::$staticProperty;
}
public function accessStaticFromInstance() {
// Pristup statičkom svojstvu iz nestatičke metode
return self::$staticProperty;
}
}
Primer zajedničke upotrebe $this i self:
class Example {
public $instanceId;
private static $count = 0;
public function __construct() {
// Korišćenje self za povećanje statičkog brojača
self::$count++;
// Korišćenje $this za postavljanje svojstva instance
$this->instanceId = self::$count;
}
public static function getCount() {
// Korišćenje self za dobijanje statičkog svojstva
return self::$count;
}
public function getInstanceId() {
// Korišćenje $this za dobijanje svojstva instance
return $this->instanceId;
}
}