Подтвердить что ты не робот

Как программно проверить, работает ли на HHVM?

Мне нужно запустить данный пакет как во время выполнения HHVM, так и в традиционном PHP. Мой вопрос: есть ли способ проверить программно, если текущая среда HHVM? Что-то вроде этого:

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

Ответ 1

Вы можете использовать константу 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

Ответ 2

В некоторых старых версиях HHVM не определено HHVM_VERSION. Все они выводят "HipHop" в phpinfo().

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