Sobes.tech
Junior — Middle

PHP'da ikki chiziq bilan boshlanadigan maxsus usullardan foydalanish tajribangiz bormi?

sobes.tech AI

AIdan javob

PHP-da, ikki chiziq osti (__) bilan boshlanadigan maxsus metodlar sehrli metodlar deb ataladi. Ular ob'ektlarning muayyan vaziyatlarda xulqini qayta belgilash imkonini beradi. Masalan:

  • __construct() — sinfning konstruktoru
  • __destruct() — destruktor
  • __get($name) — mavjud bo'lmagan yoki kirish mumkin bo'lmagan xususiyatga murojaat qilganda chaqiriladi
  • __set($name, $value) — mavjud bo'lmagan yoki kirish mumkin bo'lmagan xususiyatga yozish amalga oshirilganda chaqiriladi
  • __call($name, $arguments) — mavjud bo'lmagan metod chaqirilganda chaqiriladi
  • __toString() — ob'ektni satrga aylantirishda xulqini belgilaydi

__get va __set dan foydalanish misoli:

class User {
    private $data = [];

    public function __get($name) {
        return $this->data[$name] ?? null;
    }

    public function __set($name, $value) {
        $this->data[$name] = $value;
    }
}

$user = new User();
$user->name = 'Иван';
echo $user->name; // 'Иван' ni chiqaradi

Sehrli metodlar ob'ektlarning xulqini moslashuvchan boshqarish imkonini beradi va ko'pincha dizayn shablonlarini amalga oshirish yoki sinflarning interfeysini soddalashtirish uchun ishlatiladi.