They chose this approach to avoid ambiquity/complexity in the parser and code readability since => is also used to declare arrays.
Because the arrow already exists in PHP and is used for key => value mapping in arrays and foreach statements.
1: But does the syntax really collide?
I would think that this:
$a=[ 'doubler' => $x => $x*2 ]
clearly should create an array with an elemnt that is a function and has the key 'doubler'. Where is the problem?2: And how about just using some other char combination?
$x ~> $x * 2
Or something like that.> But does the syntax really collide?
Yes.
$a = [ $x => $x * 2 ];
Is this an array mapping the key $x to the value $x * 2, or is this an array mapping the key 0 to a function that doubles its input?
Re:25 Years of PHP [video]
by francislavoie on Sunday September 08, 2019 @05:13PM
(#20913454)
It's all covered here in the discussion section: https://wiki.php.net/rfc/arrow_functions_v2
Looks like this is the syntax:
Strange that they went with fn() and not with the simpler approach established in Javascript: Here is a link to see an arrow function in action:https://3v4l.org/JpFJl