diff --git a/reference/spl/splfixedarray.xml b/reference/spl/splfixedarray.xml index 0623fe1c69..c79a387d11 100644 --- a/reference/spl/splfixedarray.xml +++ b/reference/spl/splfixedarray.xml @@ -1,5 +1,5 @@ - + Класс SplFixedArray @@ -48,12 +48,8 @@ &Methods; - - - - - - + + @@ -88,6 +84,14 @@ в SplFixedArray. + + 8.1.0 + + Обращение к объекту SplFixedArray по нецелочисленному ключу + теперь вместо исключения RuntimeException + выбрасывает ошибку TypeError. + + 8.1.0 @@ -136,23 +140,25 @@ $array[9] = "asdf"; // Сокращаем размер массива до 2-х $array->setSize(2); -// Следующий код вызывает исключение RuntimeException: Index invalid or out of range +// Следующие два блока вызывают исключение RuntimeException: Index invalid or out of range try { - var_dump($array["non-numeric"]); -} catch(RuntimeException $re) { - echo "RuntimeException: ".$re->getMessage()."\n"; + var_dump($array[-1]); +} catch(RuntimeException $e) { + echo "RuntimeException: ".$e->getMessage()."\n"; } try { - var_dump($array[-1]); -} catch(RuntimeException $re) { - echo "RuntimeException: ".$re->getMessage()."\n"; + var_dump($array[5]); +} catch(RuntimeException $e) { + echo "RuntimeException: ".$e->getMessage()."\n"; } +// Начиная с PHP 8.1.0 нецелочисленный ключ выбрасывает ошибку TypeError. +// До PHP 8.1.0 вместо неё выбрасывалось исключение RuntimeException. try { - var_dump($array[5]); -} catch(RuntimeException $re) { - echo "RuntimeException: ".$re->getMessage()."\n"; + var_dump($array["non-numeric"]); +} catch(TypeError $e) { + echo "TypeError: ".$e->getMessage()."\n"; } ?> ]]> @@ -165,11 +171,19 @@ int(2) string(3) "foo" RuntimeException: Index invalid or out of range RuntimeException: Index invalid or out of range -RuntimeException: Index invalid or out of range +TypeError: Illegal offset type ]]> + + + До PHP 8.1.0 обращение к SplFixedArray + по нецелочисленному ключу выбрасывало исключение + RuntimeException, а не ошибку + TypeError. + +