Sobes.tech
Junior

Sinfning qaysi sehrli metodlarini bilasiz?

sobes.tech AI

AIdan javob

PHPda "sihirli" deb nomlangan bir qator maxsus metodlar mavjud. Ular klass ob'ektlari bilan ma'lum harakatlar amalga oshirilganda avtomatik ravishda chaqiriladi. Ularning ba'zilari:

  • __construct(): Yangi sinf nusxasi yaratilganda chaqiriladi. Ob'ektni boshlash uchun ishlatiladi.
  • __destruct(): Ob'ekt yo'q qilinayotganda chaqiriladi (masalan, skript bajarilishi tugagach yoki aniq unset() chaqirilganda). Resurslarni bo'shatish uchun ishlatiladi.
  • __call($name, $arguments): Ob'ektning kirish mumkin bo'lmagan (hozirgi kontekstda ko'rinmaydigan) metodini chaqirishga urinishda chaqiriladi. $name chaqirilgan metod nomi, $arguments uning argumentlari massividir.
  • __callStatic($name, $arguments): __call() ga o'xshash, ammo kirish mumkin bo'lmagan statik metodni chaqirishga urinishda chaqiriladi.
  • __get($name): Kirish mumkin bo'lmagan xususiyatni o'qishga urinishda chaqiriladi. $name xususiyat nomi.
  • __set($name, $value): Kirish mumkin bo'lmagan xususiyatga yozishga urinishda chaqiriladi. $name xususiyat nomi, $value beriladigan qiymat.
  • __isset($name): isset() yoki empty() yordamida kirish mumkin bo'lmagan xususiyat mavjudligini tekshirishda chaqiriladi. $name xususiyat nomi.
  • __unset($name): unset() yordamida kirish mumkin bo'lmagan xususiyatni olib tashlashga urinishda chaqiriladi. $name xususiyat nomi.
  • __sleep(): Ob'ekt serializatsiya qilinishidan oldin chaqiriladi. Serializ qilinadigan xususiyatlar nomlarini o'z ichiga olgan massivni qaytarishi kerak.
  • __wakeup(): unserialize() yordamida deserializatsiya qilinadigan ob'ektni darhol keyin chaqiriladi. U bog'lanishlar yoki resurslarni tiklash uchun ishlatilishi mumkin.
  • __toString(): Ob'ektni satrga aylantirishga urinishda chaqiriladi (masalan, echo yordamida chiqarishda). Ob'ektning satrli taqdimotini qaytarishi kerak.
  • __invoke(...$args): Ob'ektni funktsiya sifatida ishlatishga urinishda chaqiriladi.
  • __set_state(array $properties): var_export() yordamida ob'ektni tiklashda chaqiriladi. var_export() tomonidan eksport qilingan xususiyatlar massivini oladi.
  • __clone(): clone yordamida ob'ekt klonlanganda chaqiriladi. Chuqur nusxalar uchun ishlatiladi (masalan, ob'ekt ichidagi ob'ektlar).

Ushbu metodlardan ehtiyotkorlik bilan foydalanish muhim, chunki noto'g'ri foydalanish kodning oldindan ko'rilmagan xatti-harakatlariga olib kelishi mumkin.