You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP 8.1升级后PHPUnit TestCase::count()弃用错误求助

解决PHP 8.1下PHPUnit TestCase::count()的弃用错误

问题原因

PHP 8.1严格执行接口方法的返回类型匹配规则,Countable接口的count()方法明确要求返回类型为int,而你的TestCase子类重写的count()方法既未声明匹配的返回类型,也没有正确使用抑制警告的属性。你之前把[\ReturnTypeWillChange]放在注释里是无效的——这是PHP属性,不属于注释内容。

解决方案

方案1:声明匹配的返回类型(推荐)

直接给count()方法添加int返回类型,完全符合接口规范,彻底消除警告:

/**
 * Counts the number of test cases executed by run(TestResult result).
 *
 * @return int
 */
public function count(): int
{
    return 1;
}

方案2:正确使用返回类型兼容属性(临时抑制)

如果暂时不想修改返回类型,需将#[\ReturnTypeWillChange]作为PHP属性放在方法上方(而非注释内部):

/**
 * Counts the number of test cases executed by run(TestResult result).
 *
 * @return int
 */
#[\ReturnTypeWillChange]
public function count()
{
    return 1;
}

注意:该属性仅用于临时兼容旧代码,长期来看推荐使用方案1,保证代码符合PHP类型规范。

内容的提问来源于stack exchange,提问作者Aleksey Levandovskiy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 07:20:30