我该如何在PhP中改进这种延迟加载模式?

时间:2013-01-18 16:56:04

标签: php lazy-loading

static $searchQuery="nothing";

if ($searchQuery=="nothing")
{
    if ($referral=="")
    {
        $referral=referrer();
    }
    $searchQuery=getSearchQuery($referral);
}
return $searchQuery;

基本上我需要用某些东西初始化$ searchQuery。

我可以用“”初始化它,但$ searchQuery的值通常是合法的“”。

那么我应该如何初始化它? “”?零?空值?阵列()?什么?

我也可以使用

static $result;
if  (isset($result))
{
    return $result;
}

但我收到警告,因为$ result未定义。

1 个答案:

答案 0 :(得分:2)

这取决于你,但你需要小心PHP的松散输入。我更喜欢NULL,我会将该代码编写为:

static $searchQuery = NULL;

if( is_null($searchQuery) ) {
    if( emtpy($referral) ) {
        $referral=referrer();
    }
    $searchQuery=getSearchQuery($referral);
}
return $searchQuery;