1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
2023-01-22 12:58:39 +03:00

189 lines
4.4 KiB
XML
Raw Permalink 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: fadab82e11cf93c08eb214cf9d67e9e5ac586a30 Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="reflectionclassconstant.getattributes" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>ReflectionClassConstant::getAttributes</refname>
<refpurpose>Получает атрибуты</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="ReflectionClassConstant">
<modifier>public</modifier> <type>array</type><methodname>ReflectionClassConstant::getAttributes</methodname>
<methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>name</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer>0</initializer></methodparam>
</methodsynopsis>
<para>
Возвращает все атрибуты, объявленные в этой константе класса, в виде массива <type>ReflectionAttribute</type>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
&reflection.getattributes.param.name;
&reflection.getattributes.param.flags;
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Массив атрибутов в виде объекта <classname>ReflectionAttribute</classname>.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Простой пример</title>
<programlisting role="php">
<![CDATA[
<?php
#[Attribute]
class Fruit {
}
#[Attribute]
class Red {
}
class Basket {
#[Fruit]
#[Red]
public const APPLE = 'apple';
}
$classConstant = new ReflectionClassConstant('Basket', 'APPLE');
$attributes = $classConstant->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Array
(
[0] => Fruit
[1] => Red
)
]]>
</screen>
</example>
</para>
<para>
<example>
<title>Фильтрация результатов по имени класса</title>
<programlisting role="php">
<![CDATA[
<?php
#[Attribute]
class Fruit {
}
#[Attribute]
class Red {
}
class Basket {
#[Fruit]
#[Red]
public const APPLE = 'apple';
}
$classConstant = new ReflectionClassConstant('Basket', 'APPLE');
$attributes = $classConstant->getAttributes('Fruit');
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Array
(
[0] => Fruit
)
]]>
</screen>
</example>
</para>
<para>
<example>
<title>Фильтрация результатов по имени класса, с наследованием</title>
<programlisting role="php">
<![CDATA[
<?php
interface Color {
}
#[Attribute]
class Fruit {
}
#[Attribute]
class Red implements Color {
}
class Basket {
#[Fruit]
#[Red]
public const APPLE = 'apple';
}
$classConstant = new ReflectionClassConstant('Basket', 'APPLE');
$attributes = $classConstant->getAttributes('Color', ReflectionAttribute::IS_INSTANCEOF);
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Array
(
[0] => Red
)
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><methodname>ReflectionClass::getAttributes</methodname></member>
<member><methodname>ReflectionFunctionAbstract::getAttributes</methodname></member>
<member><methodname>ReflectionParameter::getAttributes</methodname></member>
<member><methodname>ReflectionProperty::getAttributes</methodname></member>
</simplelist>
</para>
</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
-->