41
loading...
This website collects cookies to deliver better user experience
array_key_exists
, long chaining of if
conditions, and a redundant nested code. Let's see how it can be improved, without changing its behavior.array_key_exists
. The reason for that is that it can be written much more simply. The null coalescing operator is meant for exactly the same purpose we have here, to be safe from exceptions of missing array keys.$cityName
value from the $addressArray
, which has many keys to represent the name of a city. It traverses the array keys one by one until it finds a non-empty value. It can be made shorter, however, by replacing the if
conditions with the ternary operator ?:
. The ternary operator will return the left-hand value if it evaluates as true
, otherwise, it will return the right-hand side.$cityName = 'error'
;. Then, only if this value is not 'error'
, it allows the "happy path", which is fetching or creating the city, launching an event, and returning that $city
.'error'
from the $addressArray
itself, which is unlikely. Taking into account how the rest of the code is using this method, it's safe to say that they simply wanted to avoid empty values. In that case, we just check for empty values.if
condition is visually pushing the main bulk of code on the right of the screen, although by a very small margin. But what if the main code was longer, and more complex?The code used for illustration is taken from the OpenLitterMap project. They're doing a great job creating the world's most advanced open database on litter, brands & plastic pollution. The project is open-sourced and would love your contributions, both as users and developers.