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

时间:2013-12-26 00:09:25

标签: php hhvm

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

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

2 个答案:

答案 0 :(得分:34)

您可以使用特定于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

答案 1 :(得分:-2)

某些旧版本的HHVM未定义HHVM_VERSION。它们都在phpinfo()中输出“HipHop”。

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