PHP / Laravel仅检查函数中的条件一次

问题描述 投票:0回答:1

[我为Laravel编写了一个自定义转换函数,该函数首先检查配置变量以查看是否使用Laravel的默认__()函数或我的自定义trans()函数。

这是我的职能:

function t($key, $replace = [], $locale = null)
{
    $source = Config::get('translate.source');
    if ($source == 'database') {
        return trans($key, $replace, $locale);
    } else {
        return __($key, $replace, $locale);
    }
}

但是,出于速度目的,我不希望if条件运行达到我调用t()函数的时间,而只在第一次调用时才出现。

有什么想法吗?

php laravel function laravel-5 lumen
1个回答
0
投票

您想在类中设置一个变量并引用它。因此,创建一个变量databaseSource:

private $databaseSource = false;

然后您需要一个将更改布尔值的方法:

function updateSource()
{
    $source = Config::get('translate.source');
    if ($source == 'database') {
        $this->databaseSource = true;
    }

    $this->databaseSource = false;
}

然后您可以通过访问变量来一遍又一遍地使用此功能,而不是每次需要时都获取源。

例如if ($databaseSource) { ... }

© www.soinside.com 2019 - 2024. All rights reserved.