1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-29 19:22:13 +02:00
Files
archived-doc-ru/language/predefined/closure/bind.xml
Mikhail Alferov 003ddcc2db Update bind.xml
2024-03-22 01:51:26 +03:00

141 lines
4.5 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 9c74079f12d67cabb52c124d761f48275417d7eb Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="closure.bind" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>Closure::bind</refname>
<refpurpose>
Дублирует замыкание с указанием конкретного связанного объекта и области видимости класса
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="Closure">
<modifier>public</modifier> <modifier>static</modifier> <type class="union"><type>Closure</type><type>null</type></type><methodname>Closure::bind</methodname>
<methodparam><type>Closure</type><parameter>closure</parameter></methodparam>
<methodparam><type class="union"><type>object</type><type>null</type></type><parameter>newThis</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>object</type><type>string</type><type>null</type></type><parameter>newScope</parameter><initializer>"static"</initializer></methodparam>
</methodsynopsis>
<para>
Этот метод — статический вариант метода <methodname>Closure::bindTo</methodname>.
Документация к указанному методу даёт подробную информацию.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
<varlistentry>
<term><parameter>closure</parameter></term>
<listitem>
<para>
Анонимная функция для привязывания к объекту.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>newThis</parameter></term>
<listitem>
<para>
Объект, с которым метод свяжет анонимную функцию,
или &null;, чтобы метод не связывал замыкание.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>newScope</parameter></term>
<listitem>
<para>
Область видимости класса, с которой метод свяжет замыкание,
или ключевое слово static для сохранения текущей области видимости.
Если передали объект, то областью видимости класса будет тип этого объекта.
Этот параметр определяет видимость защищённых и закрытых методов связанного объекта.
Нельзя передавать в параметр название или экземпляр объекта внутреннего PHP-класса.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Метод возвращает новый объект замыкания <classname>Closure</classname>
или &null;, если возникла ошибка.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<example>
<title>Пример использования метода <function>Closure::bind</function></title>
<programlisting role="php">
<![CDATA[
<?php
class A
{
private static $sfoo = 1;
private $ifoo = 2;
}
$cl1 = static function() {
return A::$sfoo;
};
$cl2 = function() {
return $this->ifoo;
};
$bcl1 = Closure::bind($cl1, null, 'A');
$bcl2 = Closure::bind($cl2, new A(), 'A');
echo $bcl1(), "\n";
echo $bcl2(), "\n";
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
1
2
]]>
</screen>
</example>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><link linkend="functions.anonymous">Анонимные функции</link></member>
<member><methodname>Closure::bindTo</methodname></member>
</simplelist>
</refsect1>
</refentry>
<!-- 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
-->