Files
php-doc-ru/reference/classobj/functions/get-class.xml
2021-01-05 20:16:26 +03:00

227 lines
6.1 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: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: shein Status: ready -->
<!-- Reviewed: yes -->
<!-- $Revision$ -->
<refentry xml:id="function.get-class" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>get_class</refname>
<refpurpose>Возвращает имя класса, к которому принадлежит объект</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>get_class</methodname>
<methodparam choice="opt"><type>object</type><parameter>object</parameter></methodparam>
</methodsynopsis>
<para>
Возвращает имя класса, экземпляром которого является
объект <parameter>object</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>object</parameter></term>
<listitem>
<para>
Тестируемый объект. Внутри класса этот параметр может быть опущен.
</para>
<note>
<simpara>
Начиная с PHP 7.2.0, явная передача &null; в <parameter>object</parameter>
запрещена.
</simpara>
<simpara>
Параметр всё ещё опциональный и вызов <function>get_class</function>
без этого параметра внутри класса будет работать, но явная передача &null;
теперь приведёт к ошибке уровня <constant>E_WARNING</constant>.
</simpara>
</note>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Возвращает имя класса, к которому принадлежит экземпляр <parameter>object</parameter>.
Возвращает &false;, если <parameter>object</parameter> не является
объектом.
</para>
<para>
Если параметр <parameter>object</parameter> опущен внутри класса,
будет возвращено имя этого класса.
</para>
<para>
Если параметр <parameter>object</parameter> является экземпляром класса,
существующего в пространстве имён, то будет возвращено полное имя
с указанием пространства имён.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Если <function>get_class</function> будет вызвана с чем-то другим,
не являющимся объектом, будет вызвана ошибка уровня
<constant>E_WARNING</constant>.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>7.2.0</entry>
<entry>
До этой версии значением по умолчанию для <parameter>object</parameter>
было &null; с тем же эффектом, что и отсутствие передачи значения. Теперь
&null; был удалён как значение по умолчанию для <parameter>object</parameter>
и больше не является допустимым значением.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Использование <function>get_class</function></title>
<programlisting role="php">
<![CDATA[
<?php
class foo {
function name()
{
echo "Меня зовут " , get_class($this) , "\n";
}
}
// создание объекта
$bar = new foo();
// внешний вызов
echo "Его имя " , get_class($bar) , "\n";
// внутренний вызов
$bar->name();
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Его имя foo
Меня зовут foo
]]>
</screen>
</example>
<example>
<title>Использование <function>get_class</function> в родительском классе</title>
<programlisting role="php">
<![CDATA[
<?php
abstract class bar {
public function __construct()
{
var_dump(get_class($this));
var_dump(get_class());
}
}
class foo extends bar {
}
new foo;
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
string(3) "foo"
string(3) "bar"
]]>
</screen>
</example>
<example>
<title>Использование <function>get_class</function> с классами в пространствах имён</title>
<programlisting role="php">
<![CDATA[
<?php
namespace Foo\Bar;
class Baz {
public function __construct()
{
}
}
$baz = new \Foo\Bar\Baz;
var_dump(get_class($baz));
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
string(11) "Foo\Bar\Baz"
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>get_called_class</function></member>
<member><function>get_parent_class</function></member>
<member><function>gettype</function></member>
<member><function>is_subclass_of</function></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
-->