Есть контроллер ZF2 (версия PHP 5.6.11-1ubuntu3.4 ) и в нем константа FILE_EXTENSION_REPORT
class IndexController extends AbstractController
{
const FILE_EXTENSION_REPORT = [
'xls',
'xlsx',
'csv',
];
}
В одном публичном методе есть вывод этой константы
print_r(self::FILE_EXTENSION_REPORT);
print_r(self::FILE_EXTENSION_REPORT);
print_r(self::FILE_EXTENSION_REPORT);
$data = [
'fileReportExtenstions' => self::FILE_EXTENSION_REPORT,
];
$this->_getJSON()->setVariable('data', $data);
return $this->_getJSON();
После 2-ого обновления страницы, выводит следующее
Array
(
[0] => csv
)
Array
(
[0] => xls
[1] => xlsx
[2] => csv
)
Array
(
[0] => xls
[1] => xlsx
[2] => csv
)
Хотя при первом обновлении все корректно. Ошибка появляется только при включенном opcache. Так же, если поставить exit после print_r, то данные так же корректно выводятся.
Если ключи массива заменить на строковые (но не числового значения), то данные выводятся корректно.
Что это за магия и как ее лечить?