1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
Mikhail Alferov ebff5adf4d Updated to English (#963)
* Update constants.xml

* Update new-features.xml

* Update book.xml

* Update evstat.xml

* Update construct.xml

* Update ini.xml

* Update book.xml

* Update controls.xml

* Update ldap-exop.xml

* Update pattern.modifiers.xml

* Update pattern.modifiers.xml

* Update construct.xml

* Update construct.xml

* Update sodium-crypto-pwhash.xml

* Update book.xml

* Update close.xml

* Update getarchiveflag.xml

* Update open.xml

* Update setarchiveflag.xml
2024-03-18 09:45:48 +03:00

188 lines
5.2 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: c1aba02c4753e56b4ab5053a0ab5be8584cbf8bc Maintainer: tmn Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="reflectionproperty.construct" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>ReflectionProperty::__construct</refname>
<refpurpose>Создаёт объект класса ReflectionProperty</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<constructorsynopsis role="ReflectionProperty">
<modifier>public</modifier> <methodname>ReflectionProperty::__construct</methodname>
<methodparam><type class="union"><type>object</type><type>string</type></type><parameter>class</parameter></methodparam>
<methodparam><type>string</type><parameter>property</parameter></methodparam>
</constructorsynopsis>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>class</parameter></term>
<listitem>
<para>
Строка, которая содержит имя класса для отражения, или объект.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>property</parameter></term>
<listitem>
<para>
Имя свойства, которое требуется отразить.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Метод выбросит исключение при попытке получить или установить
значение защищённого или закрытого свойства класса.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>
Пример использования метода <methodname>ReflectionProperty::__construct</methodname>
</title>
<programlisting role="php">
<![CDATA[
<?php
class Str
{
public $length = 5;
}
// Создаём новый объект класса ReflectionProperty
$prop = new ReflectionProperty('Str', 'length');
// Выводим основную информацию об объекте
printf(
"===> У%s%s%s%s свойство '%s' (которое %s)\n" .
" есть модификаторы %s\n",
$prop->isPublic() ? ' открытого' : '',
$prop->isPrivate() ? ' закрытого' : '',
$prop->isProtected() ? ' защищённого' : '',
$prop->isStatic() ? ' статического' : '',
$prop->getName(),
$prop->isDefault() ? 'объявили во время компиляции' : 'создали во время исполнения кода',
var_export(Reflection::getModifierNames($prop->getModifiers()), true)
);
// Содаём экземпляр класса Str
$obj= new Str();
// Поучаем текущее значение
printf("---> Значение: ");
var_dump($prop->getValue($obj));
// Изменяем значение
$prop->setValue($obj, 10);
printf("---> Установка значения 10, новое значение: ");
var_dump($prop->getValue($obj));
// Сбрасываем объект
var_dump($obj);
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
===> У открытого свойства 'length' (которое объявили во время компиляции)
есть модификаторы array (
0 => 'public',
)
---> Значение: int(5)
---> Установка значения 10, новое значение: int(10)
object(Str)#2 (1) {
["length"]=>
int(10)
}
]]>
</screen>
</example>
<example>
<title>
Получение значений защищённых и закрытых свойств
через класс <classname>ReflectionProperty</classname>
</title>
<programlisting role="php">
<![CDATA[
<?php
class Foo
{
public $x = 1;
protected $y = 2;
private $z = 3;
}
$obj = new Foo;
$prop = new ReflectionProperty('Foo', 'y');
$prop->setAccessible(true);
var_dump($prop->getValue($obj)); // int(2)
$prop = new ReflectionProperty('Foo', 'z');
$prop->setAccessible(true);
var_dump($prop->getValue($obj)); // int(2)
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
int(2)
int(3)
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><methodname>ReflectionProperty::getName</methodname></member>
<member><link linkend="language.oop5.decon.constructor">Конструкторы</link></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
-->