PHP 7.2 — баг в системе Opcache.
PHP

В одном из своих проектов обнаружил странную ошибку:

could not obtain parameters for parsing in Unknown on line 0

Как выяснилось позже, это баг в системе Opcache, который оставался незамеченным на протяжении аж 12-ти релизов PHP 7.2.0 — 7.2.11. О чем был отправлен bug report, ошибку тут же пофиксили, начиная с версии 7.2.12 ее уже наверняка не будет. Интересно то, что в 7.1 opcache работает без нареканий.

*Важное дополнение: баг исправили в релизе 7.2.13. Ветка 7.3 релизнулась уже исправленная.

Ниже приведу код, который вызывает такое поведение. Нам понадобятся два файла:

index.php:

<?php
 
function anyName()
{
    require_once('test.php');
}
 
anyName();

test.php:

<?php
function errorHere()
{
    $arrayOne = ['foo' => 'bar', 'bar' => 'baz'];
    $arrayTwo = ['foo' => false];
    print_r(array_diff_key($arrayOne, $arrayTwo));
}

Добавить комментарий