繁体   English   中英

无法理解此函数(getCache)在PHP中的工作方式

[英]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参数吗? 这意味着,如果不在那里向其传递参数,则它将默认为该参数。

现在,在你的代码,它被设置为3030是默认的。 很好,这意味着它不依赖于默认值(因为理论上它可以更改,因此此调用始终为30 )。

现在,关于不使用它,这似乎更像是代码本身的设计缺陷,或者可能是复制/粘贴/ Derp™,其中从另一个函数复制了函数签名,然后不进行编辑。 它没有显着差异。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM