首页 / PHP / 使用PHP版本运行条件
使用PHP版本运行条件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用PHP版本运行条件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2076字,纯文字阅读大概需要3分钟。
内容图文
![使用PHP版本运行条件](/upload/InfoBanner/zyjiaocheng/744/f5aebe296a2443bab289160f51b9d704.jpg)
参见英文答案 > Is it possible to switch in PHP based on version? 4个
所以我现在的目标是检测用户的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.
}
我遇到的问题是,如果用户拥有5.3或更高版本(因为它们是在PHP 5.3中引入的话),我想使用PHP的匿名函数,如果他们有旧版本,则可以使用它.问题是,当然,如果用户具有PHP 5.2.17,那么if语句永远不会被评估为true,因为匿名函数调用看起来像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';
现在这样可以正常工作,因为函数53.php永远不会为5.2用户加载.但是,必须使用单独的文件并不理想.
在阅读了对Ales的问题的评论之后,这样的事情:
if ($version > '5.3'){
// require one file
}
else{
// require another
}
不管用. PHP的编译器将在执行前对编译检查语法错误运行这两个文件并抛出我试图避免的错误.文件方法工作的唯一方法是根据版本号动态选择文件.对于PHP 4和5中的每个x.y版本,这都需要一个单独的文件.不太理想.
在亚历克斯的回答中,它运作正常.我们正在讨论一行eval(需要隐藏匿名函数调用),而不是提议的大量文件.
解决方法:
你可以只是评估代码,它可以动态编译.
$res = -1
if (PHP => 5.3){
eval('$res = [some advanced PHP 5.3 fast code]');
}
else {
$res = [some basic PHP 4 code still supported by 5.3, just deprecated];
eval('$res = [some real rudimentary PHP 4 code no longer supported at all in 5.3]');
}
$res = $res + 1;
echo $res;
if (PHP => 5.3){
eval('$res = [some more advanced PHP 5.3 fast code]');
}
else {
$res = [some more basic PHP 4 code still supported by 5.3, just deprecated];
eval('$res = [some more real rudimentary PHP 4 code no longer supported at all in 5.3]');
}
看看以这种方式包含50个不同文件会有多痛苦,但是eval会让它变得简单吗?他的文件中存在大的重叠区域,因此他不想仅仅制作两个单独的文件,因此他想要一种方法在他的文件中间运行两个独立的代码段.
内容总结
以上是互联网集市为您收集整理的使用PHP版本运行条件全部内容,希望文章能够帮你解决使用PHP版本运行条件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。