如何以编程方式检查是否在 HHVM 上运行?

2022-08-30 19:11:05

我需要在HHVM运行时和传统的PHP运行时上运行给定的包。我的问题是:有没有办法以编程方式检查当前环境是否是HHVM?像这样:

<?php
if(running_on_hhvm()) {
    // do hhvm compatible routine
}
else {
    // do normal routine
}

答案 1

您可以利用特定于 HHVM 的常量:HHVM_VERSION

if (defined('HHVM_VERSION')) {
    // Code
}

如果需要,可以将其放在自己的函数中。

function is_hhvm() {
    return defined('HHVM_VERSION');
}

if (is_hhvm()) {
    // Code
}

资料来源:http://www.hhvm.com/blog/2393/hhvm-2-3-0-and-travis-ci


答案 2

一些较旧版本的 HHVM 没有定义HHVM_VERSION。它们都在 phpinfo() 中输出“HipHop”。

function is_hhvm(){
  ob_start();
  phpinfo();
  $info=ob_get_contents();
  ob_end_clean();
  return ($info=='HipHop');
}

推荐