Today I had to pull an identifying array from a DB to be used by an inner loop to apply categories to some book details I was parsing. Clearly I wanted to build this array once so it had to be built outside of the loop, but the inner loop was a function and there was something cloying about passing the to the inner function by reference everytime.
Recently I read some PHP books, and remembered that the static keyword can be used in a normal funciton, outside of a class. It seemed appropriate, but static variables can only be initialised to constants or literals. But this seems to do the job:
function parseData($data) { static $categories = array(); if (empty($categories)) { $categories = getCategories(); } ...etc... }
I’m still not sure whether this is a good thing or not, but it’s good enough for now.
0 Comments.