Files
php-doc-ru/language/types/object.xml
Alex Erohin b7b8735e16 Deleted duplication of example
Closes GH-20
2021-02-16 19:16:41 +03:00

107 lines
3.2 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: fddb6fb79392f87b40b1c63bc5efd0becf9caac3 Maintainer: shein Status: ready -->
<!-- Reviewed: yes -->
<!-- $Revision$ -->
<sect1 xml:id="language.types.object">
<title>Объекты</title>
<sect2 xml:id="language.types.object.init">
<title>Инициализация объекта</title>
<para>
Для создания нового объекта, используйте выражение
<literal>new</literal>, создающее в переменной экземпляр класса:
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
class foo
{
function do_foo()
{
echo "Код foo.";
}
}
$bar = new foo;
$bar->do_foo();
?>
]]>
</programlisting>
</informalexample>
<simpara>
Полное рассмотрение производится в разделе <link linkend="language.oop5">Классы и Объекты</link>.
</simpara>
</sect2>
<sect2 xml:id="language.types.object.casting">
<title>Преобразование в объект</title>
<para>
Если <type>object</type> преобразуется в <type>object</type>, объект не изменится.
Если значение другого типа преобразуется в
<type>object</type>, создаётся новый экземпляр встроенного класса <literal>stdClass</literal>.
Если значение было &null;, новый экземпляр будет пустым.
Массивы преобразуются в <type>object</type> с именами полей, названными согласно ключам
массива и соответствующими им значениям.
Обратите внимание, что в этом случае до PHP
7.2.0 числовые ключи не будут
доступны, пока не проитерировать объект.
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$obj = (object) array('1' => 'foo');
var_dump(isset($obj->{'1'})); // выводит 'bool(true)', начиная с PHP 7.2.0; 'bool(false)' ранее
var_dump(key($obj)); // выводит 'string(1) "1"', начиная с PHP 7.2.0; 'int(1)' ранее
?>
]]>
</programlisting>
</informalexample>
<para>
При преобразовании любого другого значения, оно будет помещено в
поле с именем <literal>scalar</literal> соответствующему типу.
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$obj = (object) 'привет';
echo $obj->scalar; // выведет 'привет'
?>
]]>
</programlisting>
</informalexample>
</sect2>
</sect1>
<!-- 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
-->