Junior
Mi a különbség a self és this kulcsszavak között PHP-ben?
sobes.tech MI
Válasz az MI-től
$this a jelenlegi példányra utaló hivatkozás. self a jelenlegi osztályra utal (statikus kontextusban vagy metódusokon belül a statikus tagok eléréséhez).
$this:
- Egy adott példány tulajdonságaihoz és metódusaihoz való hozzáférésre használják.
- Nem statikus metódusokon belül alkalmazzák.
class MyClass {
public $instanceProperty = 'Helló';
public function getInstanceProperty() {
// Hozzáférés a jelenlegi példány tulajdonságához
return $this->instanceProperty;
}
}
self:
- A osztály statikus tulajdonságaihoz és metódusaihoz való hozzáférésre használják.
- Statikus és nem statikus metódusokon belül alkalmazzák.
class MyClass {
public static $staticProperty = 'Világ';
public static function getStaticProperty() {
// Hozzáférés a statikus tulajdonsághoz
return self::$staticProperty;
}
public function accessStaticFromInstance() {
// Hozzáférés a statikus tulajdonsághoz nem statikus módból
return self::$staticProperty;
}
}
A $this és self együttes használatának példája:
class Example {
public $instanceId;
private static $count = 0;
public function __construct() {
// A statikus számláló növelése self segítségével
self::$count++;
// A példány tulajdonságának beállítása $this segítségével
$this->instanceId = self::$count;
}
public static function getCount() {
// A statikus tulajdonság lekérése self segítségével
return self::$count;
}
public function getInstanceId() {
// A példány tulajdonságának lekérése $this segítségével
return $this->instanceId;
}
}