无法调用 Hamcrest\Matcher|null 上的方法 matches(),在 SeriesMatchingOnce:82

作者: pscheit创建于 2025年7月26日更新于 2025年7月26日
php
    private function _isMatched($item): bool
    {
        $this->_nextMatchKey = array_shift($this->_keys);
        $nextMatcher = array_shift($this->_elementMatchers);

        if (!$nextMatcher->matches($item)) {
            $this->_describeMismatch($nextMatcher, $item);

            return false;
        }

        return true;
    }
 
 当调用此方法时,$this->_elementMatchers 可能包含 0 个元素。 
 此错误由 phpstan 检测到,并在 #88 中写入基准中。 
 
 ------ ------------------------------------------------------------------------------------------------------------------------------------------------
  行号 hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php
 ------ ------------------------------------------------------------------------------------------------------------------------------------------------
  82     无法调用方法 matches() 在 Hamcrest\Matcher|null 上。 
           method.nonObject
         ✏️  hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php
  83     方法 Hamcrest\Arrays\SeriesMatchingOnce::_describeMismatch() 的参数 #1 $matcher 期望为 Hamcrest\Matcher,但传入了 Hamcrest\Matcher|null。 
           argument.type
         ✏️  hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php
 ------ ------------------------------------------------------------------------------------------------------------------------------------------------

内容来源: hamcrest/hamcrest-php