Sobes.tech
Junior — Middle

Dasturlashda 'sehrli funksiyalar' nima ekanligini tushuntirib bera olasizmi?

sobes.tech AI

AIdan javob

PHPda "sihirli funksiyalar" (sihirli metodlar) maxsus metodlar bo'lib, ularning nomlari ikki chiziq (__) bilan boshlanadi va tugaydi. Ular muayyan vaziyatlarda avtomatik ravishda interpretator tomonidan chaqiriladi, bu ob'ektlarning xulq-atvorini o'zgartirish imkonini beradi.

Sihirli metodlarga misollar:

  • __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 yozilganda chaqiriladi.
  • __call($name, $arguments) — mavjud bo'lmagan metod chaqirilganda chaqiriladi.
  • __toString() — ob'ekt qanday qilib satrga aylantirilishini belgilash imkonini beradi.

__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;  // Иван

Shu tarzda, sihirli metodlar ob'ektlarning xulq-atvorini moslashuvchan boshqarish imkonini beradi va ularni ma'lum holatlarda ishlatishni soddalashtiradi.