[英]can't understand how this function (getCache) works in PHP
希望有人能帮助我理解这一点:
function getCache($key, $timeout = 30) {
$contents = false;
if (MEMCACHE <> 0) {
global $memcache;
$contents = $memcache->get($key);
}
if (empty($contents)) {
return false;
}
return $contents;
}
if($onlineFrnds = getCache($userid, 30)){
//do stuff
}
我没有编写此代码,而是在我要修改的代码中(以便理解)。
我无法解释的是使用30调用setCache的原因,以及为什么用$ timeout = 30再次设置它。此外,该函数中未使用$ timeout。 如果经过30秒,则if条件的值为true。
$timeout = 30
是默认参数。 这意味着如果不提供该参数,则它将使用值30
。
这是一个小示范,向您展示它是如何工作的:
function demo($timeout = 30) {
return $timeout;
}
echo demo(); // 30
echo demo(15); //15
看起来$timeout
应该用于使缓存过期,但从未使用过。
您将看到一个可选参数的定义。
让我们看一下示例...啊, 我们开始(http://php.net/trim)
字符串修剪(字符串$ str [,字符串$ character_mask =“ \\ t \\ n \\ r \\ 0 \\ x0B”])
您在这里看到在函数签名中如何“定义” $character_mask
参数吗? 这意味着,如果不在那里向其传递参数,则它将默认为该参数。
现在,在你的代码,它被设置为30
和30
是默认的。 很好,这意味着它不依赖于默认值(因为理论上它可以更改,因此此调用始终为30
)。
现在,关于不使用它,这似乎更像是代码本身的设计缺陷,或者可能是复制/粘贴/ Derp™,其中从另一个函数复制了函数签名,然后不进行编辑。 它没有显着差异。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.