From 953999dfcd5ec084d2c1de3355b9fcef62759f14 Mon Sep 17 00:00:00 2001 From: Sergey Panteleev Date: Sat, 24 Dec 2022 11:48:55 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=BE=20=D0=B0=D0=BD=D0=B3=D0=BB?= =?UTF-8?q?=D0=B8=D0=B9=D1=81=D0=BA=D0=BE=D0=B9=20=D0=B2=D0=B5=D1=80=D1=81?= =?UTF-8?q?=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appendices/migration70/incompatible/other.xml | 4 +- language/types/iterable.xml | 105 ++---------------- language/types/type-juggling.xml | 10 +- reference/classobj/functions/is-a.xml | 6 +- reference/pcre/functions/preg-replace.xml | 11 +- reference/url/functions/http-build-query.xml | 29 ++++- 6 files changed, 55 insertions(+), 110 deletions(-) diff --git a/appendices/migration70/incompatible/other.xml b/appendices/migration70/incompatible/other.xml index c7bd59a78..9b6849260 100644 --- a/appendices/migration70/incompatible/other.xml +++ b/appendices/migration70/incompatible/other.xml @@ -1,5 +1,5 @@ - + Прочие изменения, затрагивающие обратную совместимость @@ -371,7 +371,7 @@ switch (1) { - Изменение порядка обработки операторов break и switch + Изменение порядка обработки операторов break и continue Операторы break и continue вне цикла или управляющей структуры switch теперь обрабатываются во время diff --git a/language/types/iterable.xml b/language/types/iterable.xml index 5dcd924a8..77498e5e1 100644 --- a/language/types/iterable.xml +++ b/language/types/iterable.xml @@ -1,108 +1,25 @@ - + Итерируемые - Iterable - псевдотип, введённый в PHP 7.1. Он принимает - любой массив (&array;) или объект, реализующий интерфейс Traversable. - Оба этих типа итерируются с помощью &foreach; и могут быть использованы - с yield from в генераторах. + Iterable - это встроенный во время компиляции псевдотип для array|Traversable. + С момента своего появления в PHP 7.1.0 и до PHP 8.2.0, тип iterable был встроенным псевдо-типом, + который действовал как вышеупомянутый псевдотип и мог быть использован в качестве объявления типа. + Тип iterable можно использовать в &foreach; и с конструкцией yield from + внутри генератора. - - Использование Iterable - + - Тип iterable может использоваться как тип параметра для указания, что - функция принимает набор значений, но ей не важна форма этого набора, - пока он будет использоваться с &foreach;. Если значение не является - массивом или объектом, реализующим Traversable, - будет выброшено исключение TypeError. - + Функции, объявляющие iterable в качестве типа возвращаемого значения, + также могут быть генераторами. - - Пример использования iterable в качестве параметра - - - -]]> - - - - - - Параметры, объявленные как iterable, могут использовать &null; или массив - в качестве значения по умолчанию. - - - - - - Пример установки значения по умолчанию для iterable - - - -]]> - - - - - - Iterable также может использоваться как возвращаемый тип для указания, что функция - вернёт итерируемое значение. Если возвращаемое значение не является - массивом или объектом, реализующим Traversable, - будет выброшено исключение TypeError. - - - - - - Пример использования iterable в качестве возвращаемого типа - - - -]]> - - - - - - Функции, объявляющие iterable как возвращаемый тип, также могут быть - генераторами. - - - - - - Пример использования iterable в качестве возвращаемого значения генератора + Пример использования типа возвращаемого значения iterable - + + Манипуляции с типами @@ -131,8 +131,8 @@ В этом контексте значение должно быть значением данного типа. Существуют два исключения, первое: если тип значения – целое число (int), а объявленный тип - число с плавающей точкой (float), то целое число преобразуется в число с плавающей точкой. - Второй: если значение и объявленный тип являются скалярными типами и режим строгой типизации активен (по умолчанию), - то значение может быть преобразовано в допустимое скалярное значение. + Второй: если объявленный тип является скалярным типом, значение преобразуется в скалярный тип + и режим строгой типизации активен (по умолчанию), значение может быть преобразовано в допустимое скалярное значение. Описание такого поведения смотрите ниже. @@ -213,7 +213,7 @@ В качестве исключения, если значение является строкой, а целое число (int) и число с плавающей точкой (float) являются частью объединения, - предпочтительный тип определяется существующей семантикой "числовой строки". + предпочтительный тип определяется существующей семантикой числовой строки. Например, для "42" выбирается целое число (int), а для "42.0" выбирается число с плавающей точкой (float). @@ -223,7 +223,7 @@ Типы, не входящие в приведённый выше список предпочтений, не являются объектами для неявного приведения. В частности, не происходит неявного приведения - к типам null и false. + к типам null, false и true. diff --git a/reference/classobj/functions/is-a.xml b/reference/classobj/functions/is-a.xml index 862363871..47cffb5b2 100644 --- a/reference/classobj/functions/is-a.xml +++ b/reference/classobj/functions/is-a.xml @@ -1,10 +1,10 @@ - + is_a - Проверяет, относится ли объект к указанному типу объекта или имеет этот тип объекта в качестве одного из своих родителей + Проверяет, является ли объект указанным типом или подтипом &reftitle.description; @@ -35,7 +35,7 @@ class - Имя класса + Имя класса или интерфейса. diff --git a/reference/pcre/functions/preg-replace.xml b/reference/pcre/functions/preg-replace.xml index c0c8bf3b8..d43376dc9 100644 --- a/reference/pcre/functions/preg-replace.xml +++ b/reference/pcre/functions/preg-replace.xml @@ -1,5 +1,5 @@ - + @@ -22,6 +22,11 @@ pattern и заменяет их на replacement. + + Для соответствия точной строке, а не шаблону, вместо этой функции + используйте функцию str_replace + или str_ireplace. + @@ -343,10 +348,12 @@ print_r(preg_replace($p, $r, 'a')); preg_replace_callback preg_split preg_last_error + str_replace - + @@ -60,9 +60,8 @@ arg_separator - arg_separator.output - используется в качестве разделителя аргументов, но может быть переопределён - путём указания этого параметра. + Разделитель аргументов. Если не задан или &null;, то для разделения аргументов + используется arg_separator.output. @@ -97,6 +96,28 @@ + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + Параметр arg_separator теперь допускает значение &null;. + + + + + + + &reftitle.examples;