"(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版本支援情況