没有开启控制器复用,内存常驻使得静态属性也是保存吗?

renji566

问题描述

没有开启控制器复用,内存常驻使得静态属性也是保存吗?

每次请求count都会加一,是因为内存常驻,类文件加载进内存不会销毁,所以使得跟随类文件的静态的类属性一直保留在内存中吗?

<?php

namespace app\controller;

use support\Request;

class IndexController
{

    private static $count=0;

    public function index(Request $request){
       self::$count++;
       return self::$count;
    }

}
56 2 0
2个回答

故人重来

$count 你都声明了全局静态变量。当前是静态变量了,
至于你开启控制器文档都说明很清楚:
复用的话一个进程只new一次控制器,请求结束后不释放这个控制器实例,当前进程的后续请求会复用这个实例。复用控制器性能更好,但是不符合大部分开发者习惯。

不开启控制器复用方法里面的变量都是局部变量,用完就是销毁,不会常驻的。

  • 暂无评论

所有类的静态属性一直保存在内存中,和控制器复用没有关系。

  • 暂无评论
🔝