Zajímavý zápis v schema/src/Schema/Elements/Structure.php

Michal Kumžák
Člen | 106
+
0
-

Zdravím

Něco sem hledal a náhodou sem zavítal do schema/src/Schema/Elements/Structure.php a docela mě tam zmátl zápis v konstruktoru.

(function (Schema ...$items) {})(...array_values($items));

Vysvětlí mi někdo k čemu to je, nebo co to má dělat?

David Matějka
Moderator | 6445
+
0
-

Je to kompaktní zápis, jak zkontrolovat, že všechny prvky jsou toho typu. Pokud by nebyly, padlo by to na type erroru

Michal Kumžák
Člen | 106
+
0
-

David Matějka napsal(a):

Je to kompaktní zápis, jak zkontrolovat, že všechny prvky jsou toho typu. Pokud by nebyly, padlo by to na type erroru

No to bych ještě pochopil u té první závorky, ale co dělá ten array_values?

Kamil Valenta
Člen | 822
+
+2
-

Ta druhá závorka způsobuje volání toho lambda výrazu definovaného tou první závorkou. Kdyby tam ta druhá závorka nebyla, ta anonymní funkce by se nikdy nezavolala. A array_values tam jen vysází argumenty.