Junior
Milliseid klassi maagilisi meetodeid te tead?
sobes.tech AI
Vastus AI-lt
PHP-s on rida spetsiaalseid meetodeid, mida nimetatakse "maagilisteks". Need kutsutakse automaatselt välja teatud toimingute ajal klassi objektidega. Siin on mõned neist:
__construct(): Kutsutakse, kui luuakse uus klassi eksemplar. Kasutatakse objekti initsialiseerimiseks.__destruct(): Kutsutakse, kui objekt hävitatakse (näiteks skripti täitmise lõpus või otseseltunset()-i kasutades). Kasutatakse ressursside vabastamiseks.__call($name, $arguments): Kutsutakse, kui üritate kutsuda juurdepääsmatut (nähtamatut praeguses kontekstis) meetodit.$name- kutsutud meetodi nimi,$arguments- selle argumentide massiiv.__callStatic($name, $arguments): Sarnane__call(), kuid kutsutakse, kui üritate kutsuda juurdepääsmatut staatilist meetodit.__get($name): Kutsutakse, kui üritate lugeda juurdepääsmatut omadust.$name- omaduse nimi.__set($name, $value): Kutsutakse, kui üritate kirjutada juurdepääsmatu omadus.$name- omaduse nimi,$value- määratav väärtus.__isset($name): Kutsutakse, kui kontrollite juurdepääsmatu omaduse olemasoluisset()võiempty()abil.$name- omaduse nimi.__unset($name): Kutsutakse, kui üritate eemaldada juurdepääsmatu omaduseunset()abil.$name- omaduse nimi.__sleep(): Kutsutakse enne objekti serialiseerimistserialize(). Tuleb tagastada omaduste nimede massiiv, mida tuleb serialiseerida.__wakeup(): Kutsutakse kohe pärast objekti deserialiseerimistunserialize(). Võib kasutada sidemete või ressursside taastamiseks.__toString(): Kutsutakse, kui üritate objekti stringiks muuta (näiteksechoabil). Tuleb tagastada objekti stringiline esitlus.__invoke(...$args): Kutsutakse, kui üritate kasutada objekti funktsioonina.__set_state(array $properties): Kutsutakse, kui taastate objektivar_export()abil. Saab massiivi, millevar_export()on eksportinud.__clone(): Kutsutakse, kui kloonite objekticlone-i abil. Kasutatakse sügavale koopiale.
Oluline on neid meetodeid kasutada ettevaatusega, kuna nende vale kasutamine võib põhjustada koodi ettearvamatut käitumist.