suchen

Heim  >  Fragen und Antworten  >  Hauptteil

yii2 - php什么情况下使用函数的静态变量?

假设获取网站的配置

private function _getSettings()
{
    //static $_settings;
    $cache=Yii::$app->cache;
    $settings=$cache->get('settings');
    if(!$settings){
        //获取并设置setting
    }
    return $settings;
}

这种情况下,是否应该设置一个静态变量?什么情况下最适合使用静态变量呢?

PHP中文网PHP中文网2897 Tage vor317

Antworte allen(2)Ich werde antworten

  • 天蓬老师

    天蓬老师2017-04-10 17:05:04

    class .... {
    
        // 如果参数不多
        // 或者写到别的文件里
        // 其他地方共用也好用,不容易打错
        const SETTING_SOME = 'somePerporty';
    
        // 参数多其实应该用数据库了
    
        private function _getSettings()
        {
            //static $_settings;
            $cache=Yii::$app->cache;
            $settings=$cache->get({CLASSNAME}::SETTING_SOME);
            if(!$settings){
                //获取并设置setting
            }
            return $settings;
        }
    
    }
    
    

    Antwort
    0
  • ringa_lee

    ringa_lee2017-04-10 17:05:04

    个人觉得你这里不需要使用静态变量,
    如果在函数里使用了static就属于静态局部变量,他是指每次执行这函数时那个值还在,函数外部是不能使用的。
    你这里每次执行需要去更新这个Cache,所以没必要保留这个值。

    注意静态变量要和全局变量区分开来。

    static $s_var;
    global $g_var;
    

    Antwort
    0
  • StornierenAntwort