Я отлаживаю обновление PHP5-> 7 и получаю следующую ошибку в этом блоке кода:
Неустранимая ошибка PHP7: операторы Switch могут содержать только одно предложение по умолчанию.
function adserve_cache_get_cache($data = NULL) {
static $cache = NULL;
// if we don't the the cache yet, build it
if (is_null($cache)) {
$cache = module_invoke_all('ad_build_cache');
}
if ($data) {
if (isset($cache[$data])) {
return $cache[$data];
}
else {
return NULL;
}
}
return $cache;
}
Ошибка была сгенерирована с помощью инструмента phpmar.
Мне интересно, является ли это ложным срабатыванием на основе этого кода комментария:
/**
* Build and return the cache.
* TODO: It's expensive to build the cache each time we serve an ad, this should
* be cached in the database, not in a static.
*/
Любая помощь будет оценена по достоинству.
Эта ошибка возникла не из-за этого блока кода.
Какая у вас функция module_invoke_all?
Где «выключатель»? Вы разместили неправильный блок кода.
Ошибка возникла из отчета, запущенного phpmar (github.com/Alexia/php7mar)
Мне интересно, является ли это ложным срабатыванием на основе этого кода комментария: / ** * Строить и возвращать кеш. * TODO: создавать кеш-память каждый раз, когда мы показываем рекламу, - дорого, это * должно кэшироваться в базе данных, а не в статике. * /
Я бы порекомендовал сделать вывод, что с этим кодом проблем нет, потому что - очевидно - у него нет проблемы, о которой говорится в сообщении об ошибке. Я предполагаю, что phpmar искажен, как вы предлагаете. Просто примите это и двигайтесь дальше.






Вы уверены, что ошибка только в этой части кода?