3.1.3 - 普通 - 未处理
很多情况下直接引入 require(THINK_PATH.'ThinkPHP.php');不会造成 $GLOBALS['_startUseMems'] 变量的掉失,因为它在ThinkPHP.php文件的开头就定义了。=======
当项目进入稳定阶段上线后,不常清空项目编译缓存文件的情况下直接引用或者动态判断引用项目编译缓存文件的时候就出现 $GLOBALS['_startUseMems'] 变量掉失。
require(RUNTIME_PATH.'~runtime.php');ORif(is_file(RUNTIME_PATH.'~runtime.php'))
require(RUNTIME_PATH.'~runtime.php');
else
require(THINK_PATH.'ThinkPHP.php');原因是 $GLOBALS['_startUseMems'] 变量没有编译到 ~runtime.php 文件中去。只能自己定义一下了。if(is_file(RUNTIME_PATH.'~runtime.php')){
define('MEMORY_LIMIT_ON',function_exists('memory_get_usage'));
if(MEMORY_LIMIT_ON) $GLOBALS['_startUseMems'] = memory_get_usage();
require(RUNTIME_PATH.'~runtime.php');
}else{
require(THINK_PATH.'ThinkPHP.php');
}当初还记得官方宣传这个直接引入提升效率,不知官方是否考虑将这个变量编译到缓存文件中去呢? 