没有开启控制器复用,内存常驻使得静态属性也是保存吗?
每次请求count都会加一,是因为内存常驻,类文件加载进内存不会销毁,所以使得跟随类文件的静态的类属性一直保留在内存中吗?
<?php
namespace app\controller;
use support\Request;
class IndexController
{
private static $count=0;
public function index(Request $request){
self::$count++;
return self::$count;
}
}
$count 你都声明了全局静态变量。当前是静态变量了,
至于你开启控制器文档都说明很清楚:
复用的话一个进程只new一次控制器,请求结束后不释放这个控制器实例,当前进程的后续请求会复用这个实例。复用控制器性能更好,但是不符合大部分开发者习惯。
不开启控制器复用方法里面的变量都是局部变量,用完就是销毁,不会常驻的。
所有类的静态属性一直保存在内存中,和控制器复用没有关系。