22

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

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

2 回答 2

35

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

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

于 2013-12-26T00:13:07.537 回答
-2

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

function is_hhvm(){
  ob_start();
  phpinfo();
  $info=ob_get_contents();
  ob_end_clean();
  return ($info=='HipHop');
}
于 2014-01-19T15:37:58.087 回答