При переводе сайта с версии 5.6 на 7.4 столкнулся с ошибкой:
Deprecated: Array and string offset access syntax with curly braces is deprecated
Есть функция, сокращающая hex color до 3-х символов, если это возможно, вот её часть:
// $x - это массив, который вида $x[[0] => '#ff069f', [1] => '#FF0000', [2] => '#009900'];
$hex =(($x[1]{0} == $x[1]{1}) && ($x[1]{2} == $x[1]{3}) && ($x[1]{4} == $x[1]{5})) ? '#'.$x[1]{0}.$x[1]{2}.$x[1]{4} : $x[1];
В PHP версии 5.6, обращения к символам переменной выполнялось таким образом:
$x = '#FF5577';
echo $x{4};
// 5
В версии 7.4 уже так:
$x = '#FF5577';
echo $x[4];
// 5
Но что делать если мы обращаемся не к переменной, а а элементу массива:
$x = [0 => ['#ff069f'], 1 => ['#FF5500'], 2 => ['#009900']];
echo $x[1]{4};
// Deprecated: Array and string offset access syntax with curly braces is deprecated in
// Notice: Undefined offset: 4