1
0
mirror of https://github.com/php/doc-ru.git synced 2026-04-23 23:38:07 +02:00
Files
archived-doc-ru/reference/event/event.callbacks.xml
T
2024-04-21 18:51:04 +03:00

177 lines
4.5 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: bbfa9738785f054752e6cb565cd0a58e71015bc6 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="event.callbacks" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Callback-функции</title>
<para>
Если для события зарегистрирована callback-функция, она
будет вызвана когда событие перейдёт в активный статус. Для привязывания
функции к событию, необходимо передать её как параметр
<type>callable</type>
в
<methodname>Event::__construct</methodname>
или
<methodname>Event::set</methodname>
или в один из фабричных методов, таких как
<methodname>Event::timer</methodname>
.
</para>
<para>
Функция должна соответствовать следующему прототипу:
</para>
<methodsynopsis>
<type>void</type>
<methodname>callback</methodname>
<methodparam
choice="opt">
<type>mixed</type>
<parameter>fd</parameter>
<initializer>&null;</initializer>
</methodparam>
<methodparam
choice="opt">
<type>int</type>
<parameter>what</parameter>
</methodparam>
<methodparam
choice="opt">
<type>mixed</type>
<parameter>arg</parameter>
<initializer>&null;</initializer>
</methodparam>
</methodsynopsis>
<para>
<variablelist>
<varlistentry>
<term>
<parameter>fd</parameter>
</term>
<listitem>
<para>
Дескриптор файла, потокового ресурса или сокета, связанный с событием.
Для событий сигналов
<parameter>fd</parameter>
совпадает с номером сигнала.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>what</parameter>
</term>
<listitem>
<para>
Побитовая маска
<emphasis>всех</emphasis>
обрабатываемых событий.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>arg</parameter>
</term>
<listitem>
<para>
Пользовательские данные.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
Для
<methodname>Event::timer</methodname>
callback-функция должна соответствовать следующему прототипу:
</para>
<methodsynopsis>
<type>void</type>
<methodname>callback</methodname>
<methodparam
choice="opt">
<type>mixed</type>
<parameter>arg</parameter>
<initializer>&null;</initializer>
</methodparam>
</methodsynopsis>
<para>
<variablelist>
<varlistentry>
<term>
<parameter>arg</parameter>
</term>
<listitem>
<para>
Пользовательские данные.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
Для
<methodname>Event::signal</methodname>
callback-функция должна соответствовать следующему прототипу:
</para>
<methodsynopsis>
<type>void</type>
<methodname>callback</methodname>
<methodparam
choice="opt">
<type>int</type>
<parameter>signum</parameter>
</methodparam>
<methodparam
choice="opt">
<type>mixed</type>
<parameter>arg</parameter>
<initializer>&null;</initializer>
</methodparam>
</methodsynopsis>
<para>
<variablelist>
<varlistentry>
<term>
<parameter>signum</parameter>
</term>
<listitem>
<para>
Номер сигнала (например,
<constant>SIGTERM</constant>
).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>arg</parameter>
</term>
<listitem>
<para>
Пользовательские данные.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</chapter><!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->