gpt4 book ai didi

php - 使用 PHP 版本运行条件

转载 作者:可可西里 更新时间:2023-11-01 00:22:06 24 4
gpt4 key购买 nike

<分区>

所以我现在的目标是检测用户的 PHP 版本(不是问题),然后基于它运行 if else

如果我这样写:

if (PHP => 5.3){
// call a function anonymously
}
else {
// if user does not have 5.3, this else block disables the feature.
}

我遇到的问题是,如果用户使用 PHP 5.3 或更高版本(因为它们是在 PHP 5.3 中引入的),我想使用 PHP 的匿名函数,如果他们使用的是旧版本,则使用替代方法。问题当然是,如果用户使用的是 PHP 5.2.17,虽然 if 语句永远不会评估为真,但语法会抛出 fatal error ,因为匿名函数调用看起来像是 PHP 的语法错误5.2.17

有没有办法像上面那样做?我发现的唯一解决方法是将 if 中的内容放入新文件中,将 else 中的内容放入另一个文件中,然后执行如下操作:

$version = '5.2';//user's current version cut to the nearest x.y, ex 5.3, 5.4, 5.5
// Remove the period here, so we have 5.2
require 'function'.$version.'.php';

现在这可以正常工作了,因为永远不会为 5.2 用户加载 function53.php。但是,必须使用单独的文件并不理想。

在阅读了对 Ales 的问题的评论后,是这样的:

if ($version > '5.3'){
// require one file
}
else{
// require another
}

不会工作。 PHP 的编译器将在编译时运行这两个文件,在执行前检查语法错误并抛出我试图避免的错误。文件方法工作的唯一方法是根据版本号动态选择文件。对于 PHP 4 和 5 的每个 x.y 版本,这需要一个单独的文件。不理想。

根据 Alex 的回答,它工作正常。我们谈论的是一行 eval(需要隐藏匿名函数调用),而不是建议的大量文件。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com