有谁知道如何在同一脚本中出现错误(由于调用了不支持的函数/特性)之前终止不支持版本太低的PHP脚本?
下面是一个在PHP8.2中引入的readonly class
的示例:
#!/usr/bin/env php
<?php
define("MIN_PHP_VER", 8.2);
if (version_compare(PHP_VERSION, MIN_PHP_VER, '<'))
{
echo "This script requires at least PHP " . MIN_PHP_VER . "\n";
die();
}
readonly class SomeClass
{
}
显然,这是行不通的,因为整个脚本都是在开头读取的,因此在PHP<;8.2中它将抛出一个错误:
syntax error, unexpected token "readonly"
我想让脚本执行依赖于给定环境中可用的PHP版本,而不必使用另一个脚本进行判断(所有内容都在一个脚本中执行),因此预期输出应该是:
This script requires at least PHP 8.2
有可能以某种方式实现吗?
我知道我可以使用composer
或两个脚本(第一个脚本将在PHP_VERSION符合要求时执行第二个脚本).但我只想有一个脚本,它可以详细地向用户解释为什么他不能使用它(或者,如果PHP版本正确,它就会执行).