Phpunit刚开始的时候有一个条件,但我缺乏了解它的知识:

if (!version_compare(PHP_VERSION, PHP_VERSION, '=')) {
    fwrite(
        STDERR,
        sprintf(
            '%s declares an invalid value for PHP_VERSION.' . PHP_EOL .
            'This breaks fundamental functionality such as version_compare().' . PHP_EOL .
            'Please use a different PHP interpreter.' . PHP_EOL,

            PHP_BINARY
        )
    );

    die(1);
}

来源:https://github.com/sebastianbergmann/phpunit/blob/main/phpunit

请参阅文档php,了解Version_Compare:https://www.php.net/manual/en/function.version-compare.php

VERSION_COMPARE-比较两个"标准化的"版本号字符串.但在这里,我们测试的是同样的东西‘php_version’.

在哪种情况下,这种情况可能是真的?

这可能是显而易见的,但我不明白.谢谢你的帮助.

推荐答案

如果你责怪那里的源代码,提交包含一个链接到一个博客文章,详细解释了这个问题:https://bbqsoftwares.com/blog/phpunit-big-sur.

简而言之:在特定的PHP版本上,内部版本号将包含额外的文本,并且在技术上是无效的,这会 destruct 后来使用version_compare测试PHP_VERSION的一些PHPUnit代码.为了在后面的代码中抢占这个问题,作者添加了这个简单的判断,它通过了所有受支持的常规PHP版本,而对于这个特定的PHP版本则失败,否则会导致晦涩和不直观的问题.

Php相关问答推荐

Laravel变形 map 不适用于扩展模型

如何在WooCommerce HPOS订单列表中创建自定义过滤器?

使用额外的输入字段自定义WooCommerce单个产品

使用.htaccess将任何路由重定向到文件

仅在WooCommerce管理订单视图上显示订单项自定义元数据

根据在WooCommerce购物车和 checkout 中 Select 的送货方式显示快捷代码内容

在WooCommerce管理订单列表中显示项目总权重

在Laravel中为表添加前缀,以将它们逻辑地分组

PHP空数组定义与开始或结束逗号

htaccess重命名index.php以在URL中显示为SEO的友好名称

升级到PHP 8.2后无法删除cURL Cookie文件

将购物车按钮重定向到Checkout-Wooccommerce

当未 Select 任何变体时,在 WooCommerce 可变产品上显示自定义文本

如何将不同的 Woocommerce 费用合并为一个名称?

WooCommerce:如果购物车中已存在产品,则增加购物车商品数量

使用 phpseclib 验证 RSA-PSS

如何获得没有运输等级的产品

设置GA4 PHP API的setSubject以允许访问所有管理员账户属性

批量作业(job)提交错误无法处理所有文档,uris 似乎正确?

用于检测此模式的正则表达式:something;something=something,something=something... 未知次数