Question

I need to run a given package on both HHVM runtime and traditional PHP runtime. My question: is there a way to check programmatically if current environment is HHVM? Something like this:

<?php
if(running_on_hhvm()) {
    // do hhvm compatible routine
}
else {
    // do normal routine
}
Était-ce utile?

La solution

You can utilise the constant HHVM_VERSION specific to HHVM:

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

You can put this in your own function if you want.

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

if (is_hhvm()) {
    // Code
}

Source: http://www.hhvm.com/blog/2393/hhvm-2-3-0-and-travis-ci

Autres conseils

Some older versions of HHVM don't have HHVM_VERSION defined. They all output "HipHop" in phpinfo().

function is_hhvm(){
  ob_start();
  phpinfo();
  $info=ob_get_contents();
  ob_end_clean();
  return ($info=='HipHop');
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top