[英]Is it possible to switch in PHP based on version?
我在我的一个PHP脚本中有一个函数,它依赖于5.3版来运行。
我认为如果它是在一个在PHP 5.2或更早版本的服务器上运行时没有被调用的函数,那么它将被忽略。 然而,事实证明,当该脚本及其中的类,甚至只是被包含在内时,PHP就会失败并停止执行。
如果我可以避免它,我想不必分支不同版本的脚本专用于不同的PHP版本。 相反,能够拥有“如果PHP版本5.3,然后执行此操作,如果更少,然后执行不同的操作”的代码将是理想的。
我在PHP手册中寻找某种“版本切换”,但没有看到。
像我描述的开关功能可能吗?
有很多方法可以解决这个问题。 我更喜欢检测版本和执行功能。
有一个名为phpversion()
或常量PHP_VERSION
可以为您提供当前的php版本
使用它们就像
if(phpversion() == '5.3') { //specific php functions }
检查当前版本是更新还是等于让我们说'5.3.2'。 只需使用:
if (strnatcmp(phpversion(),'5.3.2') >= 0) { # equal or newer } else { # not }
或者,使用version_compare来了解
if (version_compare(PHP_VERSION, '5.3.0') >= 0) { echo 'I am at least PHP version 5.3.0, my version: ' . PHP_VERSION . "\\n"; }
或者更加用户友好的版本是使用function_exists()
if (!function_exists('function_name')) {
// the PHP version is not sufficient
}
使用PHP 5.3+代码有一个单独的代码文件,如果检测到5.3或更高版本,则只include()
它。
看看PHP预定义的常量 。 它们包括几个定义运行版本的常量。 您可以使用它来确定要加载的脚本版本。
如果它们不存在,您可能会考虑实现PHP 5.3+函数。
if (!function_exists('array_replace')) {
function array_replace(....) {
// logic here
}
}
如果必须检测版本,则可以使用PHP_VERSION
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.