Anonymous functions, or lambda functions, are functions without a name. As they do not have a name, in order to be able to invoke them, we need to store them as variables. It might be strange at the beginning, but the idea is quite simple. At this point of time, we do not really need any anonymous function, so let's just add the code into init.php
, and then remove it:
$addTaxes = function (array &$book, $index, $percentage) { $book['price'] += round($percentage * $book['price'], 2); };
This preceding anonymous function gets assigned to the variable $addTaxes
. It expects three arguments: $book
(an array as a reference), $index
(not used), and $percentage
. The function adds taxes to the price key of the book, rounded to 2 decimal places (round
is a native PHP function). Do not mind the argument $index
, it is not used in this function, but forced by how we will use it, as you will see.
You could instantiate a list of books as an array, iterate them, and then call this...