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 aniqunset()chaqirilganda). Resurslarni bo'shatish uchun ishlatiladi.__call($name, $arguments): Ob'ektning kirish mumkin bo'lmagan (hozirgi kontekstda ko'rinmaydigan) metodini chaqirishga urinishda chaqiriladi.$namechaqirilgan metod nomi,$argumentsuning 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.$namexususiyat nomi.__set($name, $value): Kirish mumkin bo'lmagan xususiyatga yozishga urinishda chaqiriladi.$namexususiyat nomi,$valueberiladigan qiymat.__isset($name):isset()yokiempty()yordamida kirish mumkin bo'lmagan xususiyat mavjudligini tekshirishda chaqiriladi.$namexususiyat nomi.__unset($name):unset()yordamida kirish mumkin bo'lmagan xususiyatni olib tashlashga urinishda chaqiriladi.$namexususiyat 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,echoyordamida 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():cloneyordamida 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.