您所在的位置:首页 / 知识分享

think\cache\Driver::unserialize() 本地运行一直报这个错误

2020.08.24

3245

wng_png

version 6.0.0RC3
服务器:window10 mysql8.0.12 php PHP 7.3.4
file:vendor\topthink\think-cache\src\cache\Driver.php
line:242
错误原因:Argument 1 passed to think\cache\Driver::unserialize() must be of the type string, bool given, called in vendor\topthink\think-cache\src\cache\driver\File.php on line 126

研究了一下原因:

因为vendor\topthink\think-cache\src\cache\driver\File.php 第98行 public function get()方法中第108行:$content = file_get_contents($filename)读取到缓存文件的内容为空(可能是由于服务器IO性能引起的文件的共享冲突导致的,也就是同时打开同一个文件)时,第120行:$content = substr($content, 32); substr函数返回了boolean false,导致vendor\topthink\think-cache\src\cache\Driver.php 243行:protected function unserialize(string $data) 方法出错,因为该方法的参数只接受string类型。临时解决办法就是循环读取缓存文件,一直读取到内容为止。即把 $content = file_get_contents($filename)改成:
while(strlen($content = file_get_contents($filename) ) == 0 ){
}
一起等待官方发布解决办法吧。

相关新闻

2019年流行色:活力珊瑚橘色

2018.12.11

3075

这个活泼积极、肯定生命、带着金色底色的珊瑚色调以较为柔和的感觉带来活力与生机。活泼而柔美的活珊瑚橘用温暖与养分拥抱我们,在不断变动的环境中,让我们觉得舒适愉快。

互联网专治各种乱停车!

2016.06.24

5818

相信各位开车的不管是老司机还新手们都会遇到过自己的车停的巴巴适适的,去办个事回来就发现自己车前后左右都被其他乱停的车“包围”了。