Hi,
Several times a day I run into a problem where I need to dynamically initialize variables in a multidimensional array to prevent PHP throwing a notice because of an uninitialized variable.
Code fragments like this are very common:
if(!isset($profile[$year][$month][$weekday][$hour])) {
$profile[$year][$month][$weekday][$hour] = 0;
}
$profile[$year][$month][$weekday][$hour] += $load;
Or:
$profile[$year][$month][$weekday][$hour]
= isset($profile[$year][$month][$weekday][$hour])
? $profile[$year][$month][$weekday][$hour] + $load
: $load;
That looks awful and is a pain to write, also makes maintaining quite hard as these fragments are abundant. Does anyone have any ideas how I could simplify such a task? I thought of creating a reference $r
to $profile[$year][$month][$weekday][$hour]
to reduce redundancy, but it will also throw a notice if not initialized properly.
Initializing the array beforehand isn't feasible as not all keys will be used and I'd like to avoid unnecessary keys.
Any tips?