情景:
$cache
。cacheWriter()
,用于更新$cache
各种可缓存的对象。 cacheWriter()
运行一个switch()
不同的情况,每个更新$cache
中的某个键。cacheWriter()
中的某些情况正确依赖于其他情况
更新$cache
。在这些情况下,脚本会检查数组键
它取决于$cache
中已经存在,如果没有,它会调用
从内部cacheWriter()
得到它需要的案例。在这些情况下,$cache
是否已更新并包含新内容,或仅在下次运行该功能时?
示例:
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()
显然,这个功能非常简单,但它是基本概念。谢谢!
答案 0 :(得分:2)
是的,全局的值将包含最后一次写入。 global
指令用于作用域目的,告诉解释器使用哪个变量 - 它实际上并不“导入”该值并在此时保持它。