Funcții anonime php în cârligele wordpress

Funcțiile anonime ale PHP, cunoscute și ca funcții de închidere sau lambda, vă permit să creați funcții care nu au nume specifice. În WP, ele sunt cele mai utile ca valori pentru funcțiile de apel invers în cârlige (filtre și evenimente). Acestea au apărut în PHP de la versiunea 5.3, ușor modificate în 5.4.

În primul rând, să vedem cum arată cârligul cu funcția și închiderea normală:

Prima metodă are un avantaj: deoarece funcția are un nume, cârligul poate fi îndepărtat dacă este necesar utilizând funcția remove_filter () sau remove_action (). Acesta este cel care vă va folosi codul. Prin urmare, funcțiile anonime sunt invitați rare în plug-in-uri și teme. Dar dacă cârligul este creat cu ajutorul unei închideri, atunci nu îl puteți șterge oricum.

Avantajele funcțiilor anonime din WP

Sintaxă scurtă (este mai convenabil de scris).

Un spațiu de nume global mai curat nu trebuie să vă faceți griji cu privire la conflictele de nume de funcții.

  • Nu trebuie să veniți cu nume pentru funcțiile de apel invers (uneori este nevoie de mult timp).






  • Dezavantaje ale funcțiilor anonime din WP







    Nu puteți șterge un cârlig creat pe baza funcțiilor anonime.

    Este imposibil să folosiți aceeași funcție în mai multe cârlige - pentru fiecare, trebuie să scrieți o funcție anonimă separată. exemplu:

    Cu toate acestea, acest dezavantaj este ambiguu, deoarece în PHP (de la versiunea 5.3) ca în JS funcția anonimă poate fi plasată într-o variabilă și apoi se folosește o variabilă ca funcție de cârlig a cârligului:

    Dar această abordare este logică, foarte, foarte rară, aproape niciodată. Acesta poate fi aplicat, de exemplu, într-un fișier tematic separat, atunci când scriptul își termină deja lucrarea și este evident că astfel de cârlige nu interferează cu niciun alt cod. Sau, când lucrează numai într-o situație rară - într-o ramură separată a codului logic. În general, nu-mi amintesc când aveam nevoie de el.

    utilizați în funcții anonime

    O altă caracteristică a funcțiilor lambda este folosirea variabilelor din domeniul de aplicare actual, folosind instrucțiunea de utilizare:

    Variabilele sunt transmise ca valoare, dar puteți transmite o referință la variabila, specificând :

    Când trebuie să utilizez funcții anonime în WordPress?

    Dacă codul nu este destinat utilizării generale.

    Abilitatea de a șterge funcția de apel invers nu este necesară și nu va fi necesară.

    Nu aveți nevoie de suport pentru versiunile PHP de mai jos 5.3.

    Acum, un pic de înțelegere a ceea ce, puteți răspunde la întrebarea - "De ce WP nu utilizează funcții anonime?" - Pentru că codul WP ar trebui să fie cât mai flexibil posibil, iar închiderile pur și simplu nu înseamnă asta.

    Situri creative pentru oameni creativi







    Articole similare

    Trimiteți-le prietenilor: