Scenario:
- there is a global array
$cache
. - there is 1 function,
cacheWriter()
, that updates$cache
with various cachable objects.cacheWriter()
runs a switch() with different cases that each update a certain key in$cache
. - some cases in
cacheWriter()
depend on other cases to correctly update$cache
. In these cases, the script checks if the array key it depends on already exists in$cache
, and if not, it will callcacheWriter()
from within to get the case it needs.
In these cases, will $cache
already be updated and contain the new content, or only the next time the function runs?
Example:
function cacheWriter($case) {
global $cache;
if($cache[$case]) {
$out = $cache[$case];
} else {
switch($case) {
case 1 :
$cache[1] = 'some object';
break;
case 2 :
if(!$cache[1]) {
$dummy = cacheWriter(1);
}
//QUESTION:
//will $cache[1] now exist right here (since it's global)
//so that I can now simply access it like this:
$cache[2] = $cache[1]->xyz;
//OR,
//do I have to use $dummy to get [1]
//and $cache[1] will only exist the next time the function runs?
break;
}
$out = $cache[$case];
}
return $out;
}//cacheWriter()
Obviously, this function is extremely simplified, but it's the basic concept. Thanks!