thinkphp6 php8 报错 fclose(): Argument #1 ($stream) must be of type resource, null given

宙斯盾

thinkphp6 php8 报错 fclose(): Argument #1 ($stream) must be of type resource, null given
//启动代码
protected function init(Input $input, Output $output)
{
global $argv;
if ($input->hasOption('i'))
$this->interval = floatval($input->getOption('i'));
$argv[1] = $input->getArgument('status') ?: 'start';
if ($input->hasOption('d')) {
$argv[2] = '-d';
} else {
unset($argv[2]);
}
}

这块是哪里报错了?
4011 2 0
2个回答

xiuwang

workerman版本太低

  • 暂无评论
毛豆Like

解决办法 workerman 里面的
Worker类 resetStd 方法
大概 1243 行左右,里面有几句
原来大概是
\fclose($STDOUT);
\fclose($STDERR);
\fclose(\STDOUT);
\fclose(\STDERR);
改成下面这种
if ($STDOUT) {
\fclose($STDOUT);
}
if ($STDERR) {
\fclose($STDERR);
}
if (\is_resource(\STDOUT)) {
\fclose(\STDOUT);
}
if (\is_resource(\STDERR)) {
\fclose(\STDERR);
}
截图

  • 暂无评论
年代过于久远,无法发表回答
×
🔝