"(PHPUnit) PHP致命错误:未捕获的错误:调用未定义的函数each()"
P粉877114798
2023-08-23 09:25:03
<p>首先,我收到了一个警告和一个致命错误。警告:</p>
<pre class="brush:php;toolbar:false;">警告:"continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"?</pre>
<p>然后我用break替换了continue,警告消失了。但是即使替换之后,致命错误仍然发生。致命错误:</p>
<pre class="brush:php;toolbar:false;">PHP 致命错误:在 D:xamppphppearPHPUnitUtilGetopt.php 的第80行调用了未定义的函数each()
堆栈跟踪:
#0 D:xamppphppearPHPUnitTextUICommand.php(242): PHPUnit_Util_Getopt::getopt(Array, 'd:c:hv', Array)
#1 D:xamppphppearPHPUnitTextUICommand.php(138): PHPUnit_TextUI_Command->handleArguments(Array)
#2 D:xamppphppearPHPUnitTextUICommand.php(129): PHPUnit_TextUI_Command->run(Array, true)
#3 D:xamppphpphpunit(46): PHPUnit_TextUI_Command::main()
#4 {main}
在 D:xamppphppearPHPUnitUtilGetopt.php 的第80行抛出
致命错误:在 D:xamppphppearPHPUnitUtilGetopt.php 的第80行调用了未定义的函数each()
堆栈跟踪:
#0 D:xamppphppearPHPUnitTextUICommand.php(242): PHPUnit_Util_Getopt::getopt(Array, 'd:c:hv', Array)
#1 D:xamppphppearPHPUnitTextUICommand.php(138): PHPUnit_TextUI_Command->handleArguments(Array)
#2 D:xamppphppearPHPUnitTextUICommand.php(129): PHPUnit_TextUI_Command->run(Array, true)
#3 D:xamppphpphpunit(46): PHPUnit_TextUI_Command::main()</pre>
<p>Getopt.php的77-83行</p>
<pre class="brush:php;toolbar:false;">reset($args);
array_map('trim', $args);
while (list($i, $arg) = each($args)) {
if ($arg == '') {
continue;
}</pre>
<p>我使用的是PHP 8.0.1和PHPUnit 9(至少我认为是这样,因为我无法使用命令进行检查,并且我在2月7日之后下载了它)</p>
对于PHPUnit我不是专家,但是在PHP 8中不再支持"each"函数
引用自PHP官网
可能你使用的PHPUnit版本还没有适配PHP 8。 如果可以的话,请检查版本,然后参考PHPUnit版本支持情况