Приключване на PHP
Какви са веригата?
Всеки име функция се извършва в глобалното пространство, и там да завърши изпълнението на скрипта. Има ситуации, в които функцията трябва да се използва само веднъж и добавяне на името й в глобалното пространство не е желателно. За тези цели PHP ви позволява да създадете анонимни функции, или както ги наричат - верига.
важно
Затваряне на създаване, трябва да бъдат поставени в променлив елемент в масива или преминали като параметър за повикване към друга функция. Ако не ги спаси някъде за по-нататъшна употреба, след това се обадете за изпълнение ще бъде невъзможно.
Създаване и използване на затваряне
Насоки за създаване на анонимни функции:
- Изразът трябва да започва с функцията за ключова дума. Това се дължи на изискванията на синтаксиса на PHP. Ако сте пропуснали да го използвате, а след това кодът ще се провалят.
- Точно зад служебната дума (без да посочва името на функцията), получи параметри са описани в скобите.
- По време на заключителната описанието на скоби на параметъра това може да се уреди по желание използване на ключови думи. Той определя наследство верига (за наследяване по-късно в тази статия).
- Ако използването на ключовите думи. след това трябва да се поставят скоби. Те са разделени със запетаи посочат имената, наследени променливи, налични в обхвата родител.
- След описване параметри или наследство, скоби са разположени между които се определя програмен код указанието.
Както се вижда от примера по-горе, анонимен функция може да бъде поставен в променлива. За да се обадите, че е необходимо да се посочи името на променливата и скоби за прехвърлянето на изискваните параметри. Като цяло, представянето на този израз може да изглежда като "$ променлива ($ pervyy_parametr, $ vtoroy_parametr); ".
В PHP, има няколко вградени функции, които могат да вземат като параметри верига. Една такава функция е array_walk (). първият вариант е, че може да премине масив, а втората верига. По време на изпълнение array_walk (). Тя ще бъде извършена заобикаляйки всички елементи на масива. За всяка от тях се образува верига, в която първият параметър ще се предават ключове, и втората стойности елемент.
бележка
Ако анонимен функцията е била поставена в променлива, след премахването на тази променлива ще освободи памет. В PHP, механизъм за "събиране на боклука", която от своя страна е ангажирана в премахването на неизползвани променливи, но можете да контролирате процеса ръчно.
Наследство от обхват родител
Ако използвате ключовата дума е била използвана при създаването на веригата. То е последвано непосредствено, в скоби, можете да посочите имената на променливите от обхвата родител. Тези променливи ще бъдат на разположение в рамките на веригата, когато той се нарича.
Забележка наследство предава като копие от стойностите, които съществуват в тези променливи по време на анонимната функция. Ако разликата между създаването на анонимен функция и нейното предизвикателство към ценностите, наследени променливи бяха променени, функцията не знам нищо за него. За да коригирате този проблем, можете да използвате връзки.
Сподели в sotscetyah: