如何修复“数组(...)与预期类型“ NULL”不匹配”的错误。

时间:2019-04-18 18:35:28

标签: php

在为CodeWars开发Kata时,在打印值时遇到错误。尽管代码的输出看起来不错,但我收到了以下错误:“数组(...)与预期的类型“ NULL”不匹配。”

有什么想法可以更改代码以返回字符串吗?

function reverseSeq ($n) {
  $n = range($n, 1);
  foreach($n as $i) {
    if ($i > 1) {
      print_r ($i.",");
      $i--;
    } else {
      print_r ($i);
    }
  }
}

当$ n为3时,输出将按需要输出3,2,1。但是,它应该以字符串而不是整数返回。

1 个答案:

答案 0 :(得分:1)

欢迎使用Codewar和Stack Overflow!

对于Codewars katas,您需要将return的值添加到测试功能,然后该功能将对其进行验证。打印到标准输出有助于调试,但与测试的通过/失败结果无关。 Array (...) does not match expected type "NULL".是一条通用的PHPUnit失败断言消息,碰巧不是特别有用:它不显示期望数组的内容,也不以正确的顺序记录实际值和期望值。 kata的作者将参数反转为$this->assertEquals(reverseSeq(5), [5,4,3,2,1]);,因此Array (...)是测试套件所期望的值,而NULL是函数返回的值)。

只需尝试:

function reverseSeq($n) {
    return range($n, 1);
}

测试跑步者的结果:

You have passed all of the tests! :)