Lezárások php (névtelen függvények)
Lezárások és névtelen függvények PHP - ez normális funkcióját, de név nélkül. Nézzünk egy példát erre a funkció:
Ebben a példában van egy névtelen függvényt, de nincs értelme. Felmerül a kérdés - hogyan kell használni ezeket a funkciókat? Az alábbi példa segít megérteni ezt:
Ebben a példában mi hozzá egy névtelen függvényt változó, akkor kezdtük ezt a feladatot ellátó, a szintaxis $ lezárás ();. azaz mi a változó nevét zárójelben hozzá függvényhívás. Felhívjuk figyelmét, hogy a $ jel a változó nevét nem mi távolítottuk.
De ez a példa nem túl kényelmes a használata, mert ha csak ispolzovant funkciót.
Mivel a gyakorlatban használt áramkör
A névtelen függvények vagy bezárások PHP használják át őket paraméterként egyéb funkciók. PHP néhány beépített funkciója, amely úgy paraméterként az áramkör, de ez lesz írva az alábbiakban.
Vessünk egy még bonyolultabbá a példa.
Itt hoztuk létre a rendszeres funkció doStuff (), és továbbadja, mint a paraméter a névtelen függvény egy változó $ bezárását. majd futtatni a szervezetben doStuff () függvény.
Ebben a példában doStuff () függvény nem elég ellenőrizze a változó $ lezárás típusát. Ahhoz doStuff () függvény megfelelően működik a paraméterben kell tartalmaznia egy névtelen függvényt.
is_callable () funkció
Anonim függvények PHP felhasználásával vannak megvalósítva beágyazott osztály zárófedél (PHP 5> = 5.3.0, PHP 7). Azaz minden névtelen függvény tárgya ebben az osztályban.
Zárás osztályú objektumok is nevezik Pseudo visszahívás / Callables. Tartozás változó az ilyen típusú adatok segítségével ellenőrizhető is_callable () függvény.
Felhívjuk figyelmét, gettype funkció határozza meg, hogy milyen típusú a változó $ bezárását, mint egy tárgy. Ezért is_object funkció is visszatér igaz. de ez nem a megfelelő teszt ebben az esetben. Circuit ellenőrizni kell pontosan is_callable funkciót.
A design felhasználása
A névtelen függvény láthatóvá tehető változót a szülő alkalmazási terület használatának kialakítása. Itt egy példa:
A rendszer segítségével a kulcsszó használni egy névtelen függvényt, akkor át több változó, ezek perecheslyat zárójelben, vesszővel elválasztva.
Azt is fontos megérteni, hogy a használatra tervezés teszi láthatóvá változók a szülő hatálya, de ez nem ugyanaz, mint a változók a globális környezetben. Global hatálya nem változik a változás feladatoknak az különböző mértékű fészkel.
Érvek névtelen függvények
A névtelen függvény átadhatók érveket. Nézzük egy példát egy újabb érv a funkciót.
Egy érv nagyon egyszerű, anonim funkciók itt nem más, mint a megszokott.
preg_replace_callback funkció
Megígértem néhány beépített PHP függvénynek, amelyek érvként áramkör, itt van egy közülük: preg_replace_callback
preg_replace_callback - Végezzünk rendszeres kifejezés keresés és csere egy visszahívást funkciók (zárást).
- $ Pattern - a kívánt mintát lehet egy karakterlánc, vagy egy tömböt.
- $ Visszahívás - úgynevezett visszahívási-funkciót, amely egy sor párosított elemei a tárgy kap. Visszahívás funkciót kell visszatérnie a húr a csere.
- $ Tárgy - egy string vagy egy tömböt keresni és kicserélni.
Ez a tömör szintaxis, részletek a képességeit ezt a funkciót, akkor nézd meg az online kézikönyv PHP.
További funkciók veszi érvek áramkör: array_filter. array_map. array_reduce. usort.
call_user_func funkció
Funkció call_user_func - meghívja a felhasználói funkció által adott első paraméter. Függvény az eredmény, vagy egyébként FALSE.
Felhasználási példák call_user_func:
Példa call_user_func használni OOP.
osztály lezárása
Mint írtam, a névtelen függvények PHP segítségével valósítja meg a Closure osztályban. Minden névtelen függvények tárgyak a beépített osztály ..
Szintén fontos megjegyezni, hogy amikor telefonál, a tárgy függvényében, úgynevezett mágikus módszer __invoke (mivel PHP5.3).