Junior
Koje magične metode klase poznajete?
sobes.tech АИ
Одговор од АИ
У PHP-у постоји низ посебних метода које се називају "магичне". Оне се аутоматски позивају при одређеним акцијама са објектима класе. Ево неких од њих:
__construct(): Позива се приликом креирања новог примерка класе. Користи се за иницијализацију објекта.__destruct(): Позива се приликом уништавања објекта (на пример, на крају извршавања скрипте или при јасном позивуunset()). Користи се за ослобађање ресурса.__call($name, $arguments): Позива се када се покуша позвати недоступна (невидљива у тренутном контексту) метода објекта.$nameје име позване методе,$argumentsје низ њених аргумената.__callStatic($name, $arguments): Слично као__call(), али се позива када се покуша позвати недоступан статички метод.__get($name): Позива се када се покуша читати недоступна својство објекта.$nameје име својства.__set($name, $value): Позива се када се покуша уписати у недоступно својство објекта.$nameје име својства,$valueје вредност која се додељује.__isset($name): Позива се приликом провере да ли недоступно својство постоји помоћуisset()илиempty().$nameје име својства.__unset($name): Позива се када се покуша уклонити недоступно својство помоћуunset().$nameје име својства.__sleep(): Позива се пре серијализације објекта помоћуserialize(). Треба да врати низ имена својстава која треба серијализовати.__wakeup(): Позива се одмах након десериализације објекта помоћуunserialize(). Може се користити за обнову веза или ресурса.__toString(): Позива се када се покуша претворити објекат у низ (на пример, при испису помоћуecho). Треба да врати низу представљање објекта.__invoke(...$args): Позива се када се покуша користити објекат као функција.__set_state(array $properties): Позива се приликом обнове објекта помоћуvar_export(). Добија низ експортираних својстава.__clone(): Позива се приликом клонирања објекта помоћуclone. Користи се за дубоке копије (на пример, објекти унутар објекта).
Важно је користити ове методе са опрезом, јер њихова неправилна употреба може довести до непредвидивог понашања кода.