Skip to content
17 changes: 6 additions & 11 deletions appendices/aliases.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 6d46a5549bcb66444ce7a3b34301420ba7552bc8 Maintainer: shein Status: ready -->
<!-- EN-Revision: e2274fb291cb76151378a209e8c92612d1ba5340 Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<appendix xml:id="aliases" xmlns="http://docbook.org/ns/docbook">
<title>Список псевдонимов функций</title>
Expand Down Expand Up @@ -132,16 +132,6 @@
<entry><function>imap_body</function></entry>
<entry><link linkend="ref.imap">IMAP</link></entry>
</row>
<row>
<entry>imap_getmailboxes</entry>
<entry><function>imap_list_full</function></entry>
<entry><link linkend="ref.imap">IMAP</link></entry>
</row>
<row>
<entry>imap_getsubscribed</entry>
<entry><function>imap_lsub_full</function></entry>
<entry><link linkend="ref.imap">IMAP</link></entry>
</row>
<row>
<entry>imap_header</entry>
<entry><function>imap_headerinfo</function></entry>
Expand Down Expand Up @@ -592,6 +582,11 @@
<entry><function>pg_set_client_encoding</function></entry>
<entry><link linkend="ref.pgsql">PostgreSQL</link></entry>
</row>
<row>
<entry>pg_exec</entry>
<entry><function>pg_query</function></entry>
<entry><link linkend="ref.pgsql">PostgreSQL</link></entry>
</row>
<row>
<entry>pos</entry>
<entry><function>current</function></entry>
Expand Down
5 changes: 4 additions & 1 deletion appendices/migration85/constants.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: ec45af749649dc0d6a23eaedeed1b601f7460813 Maintainer: sergey Status: ready -->
<!-- EN-Revision: f8bab1dfb5246788f144103de56208dd133e9461 Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="migration85.constants">
<title>Новые глобальные константы</title>
Expand Down Expand Up @@ -162,6 +162,9 @@
<title>Стандартные модули</title>

<simplelist>
<member>
<constant>IMAGETYPE_HEIF</constant>
</member>
<member>
<constant>IMAGETYPE_SVG</constant>, если доступен модуль libxml.
</member>
Expand Down
8 changes: 7 additions & 1 deletion appendices/reserved.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 170b6cda37f29c39b9e08375344c5eb9523b2de3 Maintainer: mch Status: ready -->
<!-- EN-Revision: ff9181ea03ac348b2c7ff4ad07896f277cddcb1d Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<appendix xml:id="reserved" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Список зарезервированных слов</title>
Expand Down Expand Up @@ -561,6 +561,12 @@
<entry>
never (с PHP 8.1)
</entry>
<entry>
array (с PHP 8.5)
</entry>
<entry>
callable (с PHP 8.5)
</entry>
</row>
</tbody>
</tgroup>
Expand Down
88 changes: 78 additions & 10 deletions chapters/tutorial.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 876557ae38f6ca5035618f7cea48ca627118b437 Maintainer: shein Status: ready -->
<!-- EN-Revision: 1340d3595bde8489ea1385868ffd75471a56999b Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="tutorial" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<info><title>Простой учебник</title></info>
Expand Down Expand Up @@ -293,15 +293,15 @@ if (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox')) {
<?php

if (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox')) {
?>
?>
<h3>Функция str_contains() вернула значение true</h3>
<p>Вы просматриваете страницу в браузере Firefox.</p>
<?php
<?php
} else {
?>
?>
<h3>Функция str_contains() вернула значение false</h3>
<p>Ваш браузер не похож на Firefox.</p>
<?php
<?php
}
]]>
</programlisting>
Expand Down Expand Up @@ -400,15 +400,83 @@ if (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox')) {

<section xml:id="tutorial.whatsnext">
<info><title>Что дальше?</title></info>
<simpara>
Новые знания помогут понять бо́льшую часть руководства.
</simpara>
<para>
Новые знания помогут понять бо́льшую часть руководства
и примеры скриптов.
В частности, рекомендуется изучить следующие возможности:
<simplelist>
<member>Чтение и запись файлов с помощью <link linkend="book.filesystem">функций для работы с файловой системой</link></member>
<member><link linkend="features.file-upload">Обработка выгрузки файлов</link></member>
<member>Получение удалённых страниц и файлов через <link linkend="book.curl">Curl</link></member>
<member>
Хранение и анализ данных в базе данных через <link linkend="book.pdo">PDO</link>
(<link linkend="ref.pdo-sqlite">SQLite</link> разрешается использовать без запуска сервера базы данных)
</member>
<member>Сохранение данных между запросами через <link linkend="book.session">сессии</link></member>
</simplelist>
</para>
<simpara>
На <link xlink:href="&url.packagist;">сайте репозитория Packagist</link> доступно множество библиотек
и <link xlink:href="&url.packagist;/search/?tags=framework">фреймворков</link> на любой случай,
которые устанавливают через <link linkend="install.composer.intro">менеджер пакетов Composer</link>.
</simpara>
<simpara>
За помощью и советом сообщества рекомендуется обращаться к <link xlink:href="&url.php.support;">странице поддержки</link>.
</simpara>
<simpara>
Подкасты, презентации и другие видеоматериалы доступны на
<link xlink:href="&url.phpctv;">PeerTube-канале сообщества</link>.
</simpara>
<simpara>
Среди прочих ресурсов сообщества полезными будут «awesome-списки» (тематические подборки ссылок)
и «developer roadmaps» (списки связанных тем для изучения).
</simpara>
<para>
Сайт с материалами PHP-конференций содержит слайд-презентации,
которые подробнее рассказывают о возможностях PHP:
<link xlink:href="&url.php.talks;">&url.php.talks;</link>
Если непонятно, с чего начать, попробуйте разбить проект или задачу на более мелкие части,
чтобы было проще увидеть, что уже знакомо, а что предстоит изучить. Список разбивают
настолько подробно, насколько потребуется. Например, разработку блога можно разделить на следующие части:
<itemizedlist>
<listitem>
<simpara>Список и просмотр страниц</simpara>
<itemizedlist>
<listitem>
<simpara>Чтение записей (страниц) из базы данных</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>Создание страниц</simpara>
<itemizedlist>
<listitem>
<simpara>Обработка отправки формы</simpara>
</listitem>
<listitem>
<simpara>Запись записей (страниц) в базу данных</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>Вход администратора</simpara>
<itemizedlist>
<listitem>
<simpara>Чтение записей (пользователей) из базы данных</simpara>
</listitem>
<listitem>
<simpara>Работа с паролями</simpara>
</listitem>
<listitem>
<simpara>Сохранение данных (входа пользователя) между запросами и страницами (сессии)</simpara>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</para>
<simpara>
Если конкретной идеи для разработки нет, можно поискать упражнения по программированию: каты,
испытания и «код-гольф». Даже если они не нацелены конкретно на PHP, бо́льшую часть из них
разрешается решить, и это, вероятно, поможет проверить знания и развить мышление.
</simpara>
</section>
</chapter><!-- Keep this comment at the end of the file
Local variables:
Expand Down
6 changes: 3 additions & 3 deletions extensions.ent
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 9e2d8231b5d8a3795b365c6770fab288e59e6249 Maintainer: shein Status: ready -->
<!-- EN-Revision: 067e27db0a6f790ee0faaf99aa1f321f88f82cc9 Maintainer: shein Status: ready -->
<!-- Reviewed: no -->

<!--
Expand All @@ -9,9 +9,9 @@

<!ENTITY extcat.intro '<title xmlns="http://docbook.org/ns/docbook">
Список и классификация модулей</title>
<para xmlns="http://docbook.org/ns/docbook">Это приложение классифицирует
<simpara xmlns="http://docbook.org/ns/docbook">Это приложение классифицирует
по отдельным критериям более 150 модулей, которые описывает руководство по PHP.
</para>'>
</simpara>'>

<!ENTITY extcat.alphabetical '<title xmlns="http://docbook.org/ns/docbook">В алфавитном порядке</title>'>

Expand Down
16 changes: 8 additions & 8 deletions install/fpm/configuration.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: f0149750aedec8b2eaa46338d90213dc4767d8b3 Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: 1f01e2a8e478c63bd6598cde09235ec027b23dd5 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="install.fpm.configuration" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Настройка</title>
Expand Down Expand Up @@ -400,16 +400,16 @@
<para>
<literal>static</literal> — фиксированное число дочерних процессов (<literal>pm.max_children</literal>).
</para>
<para>
<simpara>
<literal>ondemand</literal> — число процессов, которые порождаются по требованию (когда появляются запросы,
в отличие от опции dynamic, когда стартует конкретное количество процессов, равное <literal>pm.start_servers</literal>,
вместе с запуском службы).
</para>
<para>
</simpara>
<simpara>
<literal>dynamic</literal> — количество дочерних процессов, которое изменяется динамически, задаётся на основе
следующих директив: <literal>pm.max_children</literal>, <literal>pm.start_servers</literal>,
<literal>pm.min_spare_servers</literal>, <literal>pm.max_spare_servers</literal>.
</para>
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="pm.max-children">
Expand All @@ -418,12 +418,12 @@
<type>int</type>
</term>
<listitem>
<para>
<simpara>
Число дочерних процессов, которые создадутся, когда <literal>pm</literal> установили
в режим <literal>static</literal>, или максимальное количество процессов, которые создадутся,
когда <literal>pm</literal> установили в режим <literal>dynamic</literal>.
когда <literal>pm</literal> установили в режим <literal>dynamic</literal> или <literal>ondemand</literal>.
Параметр обязателен.
</para>
</simpara>
<para>
Параметр устанавливает ограничение на число одновременных запросов,
которое обслужит менеджер. Эквивалент директивы ApacheMaxClients
Expand Down
2 changes: 1 addition & 1 deletion language/control-structures/match.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 17502ebe0691a84e7d0738c13e8c1061dde98de7 Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: 840bdb9be79855ee4b2cc66c22cf3e88b781398a Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="control-structures.match" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>match</title>
Expand Down
4 changes: 2 additions & 2 deletions language/functions.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 9c835d146d452976f21db7d9cb60dca013829d39 Maintainer: sergey Status: ready -->
<!-- EN-Revision: e290572f2599305beb62b13988024b5da187979d Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="language.functions" xmlns="http://docbook.org/ns/docbook" annotations="interactive">
<title>Функции</title>
Expand Down Expand Up @@ -1568,7 +1568,7 @@ Stack trace:
</simpara>
<simpara>
И анонимные, и стрелочные функции реализовали
через класс <link linkend="class.closure"><classname>Closure</classname></link>.
через класс <classname>Closure</classname>.
</simpara>

<simpara>
Expand Down
10 changes: 9 additions & 1 deletion language/types/type-juggling.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 78a11d3ca004ee937549d932e77a79c51b9777cd Maintainer: shein Status: ready -->
<!-- EN-Revision: 50f76f26914c5a9e61aa26f2e36c4acb362a48fd Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="language.types.type-juggling">
<title>Жонглирование типами</title>
Expand Down Expand Up @@ -339,6 +339,13 @@ var_dump($bar);
<member><literal>(unset)</literal> — приведение типа к <type>NULL</type></member>
</simplelist>

<simpara>
С версии PHP 8.5.0 также доступно приведение
<link linkend="language.types.void.casting"><literal>(void)</literal></link>,
но оно не выполняет преобразование значения. Приведение используется как
инструкция, чтобы явно отбросить результат выражения.
</simpara>

<warning>
<para>
<literal>(integer)</literal> — псевдоним приведения типа <literal>(int)</literal>.
Expand Down Expand Up @@ -449,6 +456,7 @@ if ($fst === $str) {
<member><link linkend="language.types.object.casting">Преобразование типа к объекту (object)</link></member>
<member><link linkend="language.types.resource.casting">Преобразование типа к ресурсу (resource)</link></member>
<member><link linkend="language.types.null.casting">Преобразование типа к NULL</link></member>
<member><link linkend="language.types.void.casting">Отбрасывание значения с помощью <literal>(void)</literal></link></member>
<member><link linkend="types.comparisons">Таблицы сравнения типов</link></member>
</simplelist>
</para>
Expand Down
34 changes: 33 additions & 1 deletion language/types/void.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 161dde4fe721309398dd324edbf02aec409f127b Maintainer: sergey Status: ready -->
<!-- EN-Revision: 50f76f26914c5a9e61aa26f2e36c4acb362a48fd Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="language.types.void">
<title>Void</title>
Expand All @@ -19,6 +19,38 @@
</simpara>
</note>

<sect2 xml:id="language.types.void.casting">
<title>Отбрасывание значения с помощью <literal>(void)</literal></title>

<simpara>
Синтаксис <literal>(void)</literal> используется, чтобы явно отбросить
результат выражения. Это полезно, чтобы показать, что игнорирование
возвращаемого значения сделано намеренно, особенно при вызове функции
или метода, помеченного атрибутом <classname>NoDiscard</classname>.
</simpara>

<simpara>
В отличие от других приведений, <literal>(void)</literal> не преобразует
значение к другому типу и не возвращает значения. Это инструкция, которая
не используется как часть выражения.
</simpara>

<example>
<title>Отбрасывание возвращаемого значения</title>
<programlisting role="php" annotations="non-interactive">
<![CDATA[
<?php
#[\NoDiscard]
function process(): bool {
return true;
}

(void) process(); // Явно отбрасываем возвращаемое значение
?>
]]>
</programlisting>
</example>
</sect2>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
Expand Down
4 changes: 2 additions & 2 deletions reference/curl/constants_curl_setopt.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: d7d6dd60085409b295916649e4bd7107742659a2 Maintainer: malferov Status: ready -->
<!-- EN-Revision: e38c9165b91df5e9c52eb705c169938bcdc20d31 Maintainer: malferov Status: ready -->
<!-- Reviewed: no -->
<variablelist role="constant_list">
<title><function>curl_setopt</function></title>
Expand Down Expand Up @@ -188,7 +188,7 @@
</term>
<listitem>
<para>
Строка (<type>string</type>) с именем PEM-файла, содержащего один или несколько
Двоичная строка (<type>string</type>) с содержимым в формате PEM, содержащим один или несколько
сертификатов для проверки однорангового узла. Опция переопределяет <constant>CURLOPT_CAINFO</constant>.
Доступно с PHP 8.2.0 и cURL 7.77.0.
</para>
Expand Down
6 changes: 3 additions & 3 deletions reference/datetime/dateinterval/createfromdatestring.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 3a8c3e77df070a046c9d5b56b68926ca2d7e5ee3 Maintainer: tmn Status: ready -->
<!-- EN-Revision: c0c9d7721b5a8564a4e27671389a456c1be13e6b Maintainer: tmn Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="dateinterval.createfromdatestring" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
Expand Down Expand Up @@ -65,7 +65,7 @@
&reftitle.errors;
<para>
Только для объектно-ориентированного API-интерфейса: Метод выбрасывает исключение
<exceptionname>DateMalformedStringException</exceptionname>,
<exceptionname>DateMalformedIntervalStringException</exceptionname>,
если передали недопустимую строку с датой и временем.
</para>
</refsect1>
Expand All @@ -85,7 +85,7 @@
<entry>8.3.0</entry>
<entry>
Метод <methodname>DateInterval::createFromDateString</methodname> теперь выбрасывает
исключение <exceptionname>DateMalformedStringException</exceptionname>,
исключение <exceptionname>DateMalformedIntervalStringException</exceptionname>,
если передали строку в недопустимом формате. Раньше метод возвращал значение <literal>false</literal>
и выдавал предупреждение.
Функция <function>date_interval_create_from_date_string</function>
Expand Down
Loading
Loading