Update compact.xml Infostyle

This commit is contained in:
Mikhail Alferov
2025-04-22 08:30:10 +03:00
committed by GitHub
parent 500652ce25
commit bd1df4977e

View File

@ -4,7 +4,7 @@
<refentry xml:id="function.compact" xmlns="http://docbook.org/ns/docbook"> <refentry xml:id="function.compact" xmlns="http://docbook.org/ns/docbook">
<refnamediv> <refnamediv>
<refname>compact</refname> <refname>compact</refname>
<refpurpose>Создаёт массив, содержащий названия переменных и их значения</refpurpose> <refpurpose>Создаёт массив с названиями и значениями переменных</refpurpose>
</refnamediv> </refnamediv>
<refsect1 role="description"> <refsect1 role="description">
&reftitle.description; &reftitle.description;
@ -14,18 +14,19 @@
<methodparam rep="repeat"><type class="union"><type>array</type><type>string</type></type><parameter>var_names</parameter></methodparam> <methodparam rep="repeat"><type class="union"><type>array</type><type>string</type></type><parameter>var_names</parameter></methodparam>
</methodsynopsis> </methodsynopsis>
<para> <para>
Создаёт массив, содержащий переменные и их значения. Функия создаёт массив, который содержит названия и значения переменных.
</para> </para>
<para> <para>
Для каждого переданного аргумента функция <function>compact</function> Функция <function>compact</function> выполняет операцию, противоположную функции <function>extract</function>:
ищет в текущей <link linkend="features.gc.refcounting-basics">таблице символов</link> переменную с таким же именем и добавляет рассматривает каждую строку в аргументах как название переменной,
её в выводимый массив так, что имя переменной становится ключом, ищет в текущей <link linkend="features.gc.refcounting-basics">таблице символов</link> переменную
а значение переменной становится значением этого ключа. с таким названием и добавляет переменную в выходной массив так, что название переменной становится ключом,
Короче, она выполняет операцию, противоположную функции <function>extract</function>. а содержимое переменной — значением этого ключа.
</para> </para>
<note> <note>
<para> <para>
До PHP 7.3 строки, для которых не были найдены переменные, будут пропущены без генерации ошибки. До PHP 7.3 функция без предупреждения пропускала строку, если в текущей области видимости
не установили переменную с таким названием.
</para> </para>
</note> </note>
</refsect1> </refsect1>
@ -39,9 +40,9 @@
<listitem> <listitem>
<para> <para>
Функция <function>compact</function> принимает неограниченное количество аргументов. Функция <function>compact</function> принимает неограниченное количество аргументов.
Любой из аргументов может быть либо строкой, содержащей название переменной, Каждый аргумент разрешается передавать как строку, которая содержит название переменной,
либо массивом названий переменных. Массив может содержать вложенные массивы или как массив названий переменных. Функция умеет обрабатывать массивы с вложенными массивами
названий переменных; функция <function>compact</function> обрабатывает их названий переменных; функция <function>compact</function> обрабатывает такие массивы
рекурсивно. рекурсивно.
</para> </para>
</listitem> </listitem>
@ -52,7 +53,7 @@
<refsect1 role="returnvalues"> <refsect1 role="returnvalues">
&reftitle.returnvalues; &reftitle.returnvalues;
<para> <para>
Возвращает массив с добавленными переменными. Функция возвращает массив с переменными.
</para> </para>
</refsect1> </refsect1>
@ -60,7 +61,7 @@
&reftitle.errors; &reftitle.errors;
<para> <para>
Функция <function>compact</function> выдаёт ошибку уровня <constant>E_WARNING</constant>, Функция <function>compact</function> выдаёт ошибку уровня <constant>E_WARNING</constant>,
если полученная строка ссылается на неопределённую переменную. если строка ссылается на переменную, которую не установили.
</para> </para>
</refsect1> </refsect1>
@ -78,14 +79,15 @@
<row> <row>
<entry>8.0.0</entry> <entry>8.0.0</entry>
<entry> <entry>
Если заданная строка ссылается на неопределённую переменную, теперь будет сгенерированна ошибка уровня <constant>E_WARNING</constant>. Функция теперь генерирует ошибку уровня <constant>E_WARNING</constant>,
если строка ссылается на переменную, которую не установили.
</entry> </entry>
</row> </row>
<row> <row>
<entry>7.3.0</entry> <entry>7.3.0</entry>
<entry> <entry>
Функция <function>compact</function> теперь выдаёт ошибку уровня <constant>E_NOTICE</constant>, если Функция <function>compact</function> теперь выдаёт ошибку уровня <constant>E_NOTICE</constant>,
заданная строка связана с неопределённой переменной. Ранее такие строки пропускались без уведомления. если строка ссылается на переменную, которую не установили. Раньше такие строки функция без предупреждения пропускала.
</entry> </entry>
</row> </row>
</tbody> </tbody>
@ -97,7 +99,7 @@
&reftitle.examples; &reftitle.examples;
<para> <para>
<example> <example>
<title>Пример использования <function>compact</function></title> <title>Пример добавления названий и значений переменных в массив функцией <function>compact</function></title>
<programlisting role="php"> <programlisting role="php">
<![CDATA[ <![CDATA[
<?php <?php
@ -133,11 +135,10 @@ Array
<note> <note>
<title>Замечания по работе функции compact</title> <title>Замечания по работе функции compact</title>
<para> <para>
Так как <link linkend="language.variables.variable">переменные Поскольку <link linkend="language.variables.variable">переменные переменных</link>
переменных</link> не могут быть использованы с нельзя использовать <link linkend="language.variables.superglobals">с суперглобальными массивами</link>
<link linkend="language.variables.superglobals">суперглобальными внутри функций, суперглобальные массивы нельзя
массивами</link> внутри функций, суперглобальные массивы не могут передавать в функцию <function>compact</function>.
быть переданы в <function>compact</function>.
</para> </para>
</note> </note>
</refsect1> </refsect1>