Arrow Functions in PHP
In den letzten Jahren habe ich viel Kram gemacht, Vue.js, React, versuchen ein Entwickler-Team aufzubauen, etc, was man halt so macht, in einer kleinen Agentur, dass ich nie wirklich die Muße fand mich mit den tollen neuen Entwicklungen bei PHP zu beschäftigen. Weil immer alles nur schnell-schnell gehen musste, war auch nie Zeit dafür, und privat wollte ich auch eher Dinge fertig haben, als mich mal tiefergehender damit zu beschäftigen, also die neuen Features wirklich zu benutzen, statt nur kurz einen Post dazu zu lesen.
Naja, und oft war es auch so, dass das Projekt halt mit PHP 7.1 oder PHP 7.3 lief und so lang das noch nicht Security-EOL war und der Server noch lief, da updated man ja nun auch nicht auf eine gerade neu erschienene Version. Ausreden habe ich genug parat!
Jetzt habe ich aber mal Lust, mich damit zu beschäftigen. Ich fange an, mit einer Sache, die in der JavaScript-Welt natürlich schon lange zum Standard gehört und mit PHP schon in Version 7.4 kam: Arrow Functions!
$kartoffelsuppe = fn($x) => $x * 9000;
echo $kartoffelsuppe(2);
// Sollte 18000 ausgeben!
Sieht ein bisschen dumm aus und nicht so elegant wie in JavaScript, aber man nimmt ja, was man kriegen kann.
Sinnvoll ist das natürlich hauptsächlich, wenn es um array_map
oder sowas geht:
print_r(
array_map(
fn($item) => $item['title'],
[ ['title' => 'foo'], ['title' => 'bar'] ]
)
);
// Ergibt [ 'foo', 'bar']
Das ist dann schon wesentlich kürzer als die alte Syntax – bleibt aber auch beschränkt auf diesen Anwendungsfall, dass man direkt etwas returned. Arrow functions, die wieder mit geschweiften Klammern einen ganzen Block umfassen, gibt es in PHP nicht. Ist auch wieder okay, dann schreibt man halt function
davor.
Also, ich würde sagen Arrow Functions in PHP bekommen vier von fünf 🐘🐘🐘🐘.